
#ifndef AFTERMATH_RANDOM_ZIGGURAT_EXPONENTIAL_1024_UINT32_HPP_INCLUDED
#define AFTERMATH_RANDOM_ZIGGURAT_EXPONENTIAL_1024_UINT32_HPP_INCLUDED

#include "../double_constants.hpp"
#include "../probability/dist_exponential.hpp"
#include "../template_math.hpp"
#include "ziggurat_core.hpp"
#include "ziggurat_exponential.hpp"

#include <cmath>
#include <cstdint>

namespace aftermath
{
    namespace random
    {
        template <typename t_uniform_type>
        struct ziggurat_exponential<1024U, t_uniform_type, std::size_t, mersenne_number<32>::value>
            : public ziggurat_core<1024U, ziggurat_exponential<1024U, t_uniform_type, std::size_t, mersenne_number<32>::value>, t_uniform_type, std::size_t, mersenne_number<32>::value, double>
        {
            static const std::uint_fast32_t n_boxes = 1024U;
            static const std::size_t diameter = mersenne_number<32>::value;

            typedef t_uniform_type  uniform_type;
            typedef double          result_type;
            typedef std::size_t     bounds_type;
            typedef ziggurat_exponential<n_boxes, uniform_type, bounds_type, diameter> type;
            typedef ziggurat_core<n_boxes, type, uniform_type, bounds_type, diameter, double> base_type;

            // Inherited typedef's:
            typedef type ziggurat_impl_type;

        private:
            const result_type  right_tail_x = 9.2561645442655437;
            const result_type  left_tail_x = 0.0;
            const result_type  box_volume = 0.00097967899066202092;
            const uniform_type box_volume_uint32 = 4207689;

            // Zero-based index of the box that covers the right tail.
            static const std::uint_fast32_t right_tail_index = 0;
            // Zero-based index of the box that covers the left tail.
            static const std::uint_fast32_t left_tail_index = 0;

            // The right (left) x-endpoints of the boxes, modified for the tail boxes: { x_0*, x_1, x_2, ..., x_{n - 1} }.
            const result_type  m_width_scaled[n_boxes] = {
                2.3879493922613430e-9,   2.1551187486074734e-9,   1.9814837221777619e-9,   1.8762097897697473e-9,   1.8005198401008966e-9,   1.7413754691284782e-9,   1.6928083049634310e-9,   1.6515882754284573e-9,
                1.6157700431382506e-9,   1.5840912127460325e-9,   1.5556860432203225e-9,   1.5299349724847114e-9,   1.5063793289386195e-9,   1.4846700403430896e-9,   1.4645352767421957e-9,   1.4457592158368049e-9,
                1.4281676375618641e-9,   1.4116178712806936e-9,   1.3959916071746184e-9,   1.3811896452404694e-9,   1.3671279871594993e-9,   1.3537348789279372e-9,   1.3409485395269219e-9,   1.3287153930949263e-9,
                1.3169886763277693e-9,   1.3057273294086691e-9,   1.2948951038940395e-9,   1.2844598385332102e-9,   1.2743928664554889e-9,   1.2646685261229882e-9,   1.2552637549855233e-9,   1.2461577495997254e-9,
                1.2373316795767125e-9,   1.2287684454395622e-9,   1.2204524725409324e-9,   1.2123695347812135e-9,   1.2045066030998626e-9,   1.1968517146751474e-9,   1.1893938595250613e-9,   1.1821228818025234e-9,
                1.1750293935569133e-9,   1.1681046991184587e-9,   1.1613407285724511e-9,   1.1547299790423688e-9,   1.1482654627067850e-9,   1.1419406606437988e-9,   1.1357494817359320e-9,   1.1296862259837266e-9,
                1.1237455516721794e-9,   1.1179224459142508e-9,   1.1122121981628623e-9,   1.1066103763393439e-9,   1.1011128052740684e-9,   1.0957155471955143e-9,   1.0904148840384573e-9,   1.0852073013713934e-9,
                1.0800894737684729e-9,   1.0750582514728338e-9,   1.0701106482168362e-9,   1.0652438300807677e-9,   1.0604551052854988e-9,   1.0557419148266437e-9,   1.0511018238682872e-9,   1.0465325138234994e-9,
                1.0420317750568710e-9,   1.0375975001513216e-9,   1.0332276776875903e-9,   1.0289203864902458e-9,   1.0246737902988272e-9,   1.0204861328269528e-9,   1.0163557331759706e-9,   1.0122809815730363e-9,
                1.0082603354064494e-9,   1.0042923155336969e-9,   1.0003755028399874e-9,   9.9650853502714329e-10,  9.9269010361458236e-10,  9.8891895113578813e-10,  9.8519386851516594e-10,  9.8151369261152599e-10,
                9.7787730391564396e-10,  9.7428362439043928e-10,  9.7073161544329374e-10,  9.6722027602092065e-10,  9.6374864081799708e-10,  9.6031577859149890e-10,  9.5692079057333641e-10,  9.5356280897448715e-10,
                9.5024099557436498e-10,  9.4695454038965964e-10,  9.4370266041733046e-10,  9.4048459844684900e-10,  9.3729962193715948e-10,  9.3414702195416861e-10,  9.3102611216488893e-10,  9.2793622788464693e-10,
                9.2487672517402929e-10,  9.2184697998248180e-10,  9.1884638733569643e-10,  9.1587436056412539e-10,  9.1293033057014774e-10,  9.1001374513158620e-10,  9.0712406823943042e-10,  9.0426077946776886e-10,
                9.0142337337406656e-10,  8.9861135892805038e-10,  8.9582425896757869e-10,  8.9306160967997864e-10,  8.9032296010743306e-10,  8.8760787167509010e-10,  8.8491591774065359e-10,  8.8224668316429026e-10,
                8.7959976389776358e-10,  8.7697476659177076e-10,  8.7437130822052332e-10,  8.7178901572266967e-10,  8.6922752565771279e-10,  8.6668648387712698e-10,  8.6416554520942489e-10,  8.6166437315847023e-10,
                8.5918263961437274e-10,  8.5672002457634044e-10,  8.5427621588690017e-10,  8.5185090897693091e-10,  8.4944380662098603e-10,  8.4705461870240966e-10,  8.4468306198778023e-10,  8.4232885991023993e-10,
                8.3999174236129285e-10,  8.3767144549067746e-10,  8.3536771151394033e-10,  8.3308028852735779e-10,  8.3080893032987121e-10,  8.2855339625171910e-10,  8.2631345098946576e-10,  8.2408886444714200e-10,
                8.2187941158322784e-10,  8.1968487226322115e-10,  8.1750503111754912e-10,  8.1533967740459166e-10,  8.1318860487859744e-10,  8.1105161166228426e-10,  8.0892850012392552e-10,  8.0681907675873453e-10,
                8.0472315207436730e-10,  8.0264054048037339e-10,  8.0057106018143235e-10,  7.9851453307422115e-10,  7.9647078464776537e-10,  7.9443964388713359e-10,  7.9242094318034135e-10,  7.9041451822833701e-10,
                7.8842020795794773e-10,  7.8643785443766950e-10,  7.8446730279619027e-10,  7.8250840114354046e-10,  7.8056100049476959e-10,  7.7862495469605259e-10,  7.7670012035313339e-10,  7.7478635676201760e-10,
                7.7288352584182989e-10,  7.7099149206975541e-10,  7.6911012241798796e-10,  7.6723928629261114e-10,  7.6537885547434161e-10,  7.6352870406106683e-10,  7.6168870841211236e-10,  7.5985874709417660e-10,
                7.5803870082887337e-10,  7.5622845244182526e-10,  7.5442788681325303e-10,  7.5263689083000852e-10,  7.5085535333900077e-10,  7.4908316510196695e-10,  7.4732021875154181e-10,  7.4556640874858106e-10,
                7.4382163134069600e-10,  7.4208578452195829e-10,  7.4035876799373542e-10,  7.3864048312661902e-10,  7.3693083292340960e-10,  7.3522972198312259e-10,  7.3353705646598221e-10,  7.3185274405937055e-10,
                7.3017669394470096e-10,  7.2850881676518563e-10,  7.2684902459446849e-10,  7.2519723090609586e-10,  7.2355335054379788e-10,  7.2191729969255522e-10,  7.2028899585042610e-10,  7.1866835780110980e-10,
                7.1705530558722379e-10,  7.1544976048427197e-10,  7.1385164497528312e-10,  7.1226088272609844e-10,  7.1067739856128878e-10,  7.0910111844068205e-10,  7.0753196943648250e-10,  7.0596987971096404e-10,
                7.0441477849472022e-10,  7.0286659606545453e-10,  7.0132526372729474e-10,  6.9979071379061590e-10,  6.9826287955235706e-10,  6.9674169527681729e-10,  6.9522709617691689e-10,  6.9371901839591055e-10,
                6.9221739898953928e-10,  6.9072217590860852e-10,  6.8923328798198033e-10,  6.8775067489996785e-10,  6.8627427719812068e-10,  6.8480403624139015e-10,  6.8333989420866383e-10,  6.8188179407765903e-10,
                6.8042967961016530e-10,  6.7898349533762621e-10,  6.7754318654705128e-10,  6.7610869926724880e-10,  6.7467998025537090e-10,  6.7325697698376245e-10,  6.7183963762710544e-10,  6.7042791104985108e-10,
                6.6902174679393174e-10,  6.6762109506674544e-10,  6.6622590672940545e-10,  6.6483613328524830e-10,  6.6345172686859309e-10,  6.6207264023374575e-10,  6.6069882674424172e-10,  6.5933024036232101e-10,
                6.5796683563862943e-10,  6.5660856770214043e-10,  6.5525539225029168e-10,  6.5390726553933097e-10,  6.5256414437486626e-10,  6.5122598610261442e-10,  6.4989274859934402e-10,  6.4856439026400696e-10,
                6.4724087000905450e-10,  6.4592214725193288e-10,  6.4460818190675427e-10,  6.4329893437613860e-10,  6.4199436554322212e-10,  6.4069443676382862e-10,  6.3939910985879930e-10,  6.3810834710647754e-10,
                6.3682211123534468e-10,  6.3554036541680330e-10,  6.3426307325810445e-10,  6.3299019879541527e-10,  6.3172170648702387e-10,  6.3045756120667802e-10,  6.2919772823705458e-10,  6.2794217326335667e-10,
                6.2669086236703542e-10,  6.2544376201963353e-10,  6.2420083907674778e-10,  6.2296206077210774e-10,  6.2172739471176789e-10,  6.2049680886841079e-10,  6.1927027157575851e-10,  6.1804775152308999e-10,
                6.1682921774986191e-10,  6.1561463964043070e-10,  6.1440398691887338e-10,  6.1319722964390517e-10,  6.1199433820389144e-10,  6.1079528331195222e-10,  6.0960003600115688e-10,  6.0840856761980729e-10,
                6.0722084982680727e-10,  6.0603685458711664e-10,  6.0485655416728780e-10,  6.0367992113108329e-10,  6.0250692833517233e-10,  6.0133754892490484e-10,  6.0017175633016109e-10,  5.9900952426127548e-10,
                5.9785082670503286e-10,  5.9669563792073572e-10,  5.9554393243634092e-10,  5.9439568504466433e-10,  5.9325087079965205e-10,  5.9210946501271678e-10,  5.9097144324913794e-10,  5.8983678132452426e-10,
                5.8870545530133755e-10,  5.8757744148547625e-10,  5.8645271642291777e-10,  5.8533125689641815e-10,  5.8421303992226799e-10,  5.8309804274710357e-10,  5.8198624284477186e-10,  5.8087761791324848e-10,
                5.7977214587160742e-10,  5.7866980485704160e-10,  5.7757057322193310e-10,  5.7647442953097221e-10,  5.7538135255832425e-10,  5.7429132128484317e-10,  5.7320431489533108e-10,  5.7212031277584280e-10,
                5.7103929451103444e-10,  5.6996123988155531e-10,  5.6888612886148212e-10,  5.6781394161579483e-10,  5.6674465849789319e-10,  5.6567826004715327e-10,  5.6461472698652321e-10,  5.6355404022015733e-10,
                5.6249618083108800e-10,  5.6144113007893446e-10,  5.6038886939764792e-10,  5.5933938039329223e-10,  5.5829264484185944e-10,  5.5724864468711965e-10,  5.5620736203850437e-10,  5.5516877916902298e-10,
                5.5413287851321138e-10,  5.5309964266511254e-10,  5.5206905437628806e-10,  5.5104109655386044e-10,  5.5001575225858525e-10,  5.4899300470295280e-10,  5.4797283724931876e-10,  5.4695523340806309e-10,
                5.4594017683577689e-10,  5.4492765133347659e-10,  5.4391764084484498e-10,  5.4291012945449866e-10,  5.4190510138628133e-10,  5.4090254100158256e-10,  5.3990243279768149e-10,  5.3890476140611510e-10,
                5.3790951159107053e-10,  5.3691666824780109e-10,  5.3592621640106547e-10,  5.3493814120358982e-10,  5.3395242793455223e-10,  5.3296906199808927e-10,  5.3198802892182413e-10,  5.3100931435541605e-10,
                5.3003290406913065e-10,  5.2905878395243078e-10,  5.2808694001258756e-10,  5.2711735837331121e-10,  5.2615002527340141e-10,  5.2518492706541679e-10,  5.2422205021436321e-10,  5.2326138129640060e-10,
                5.2230290699756790e-10,  5.2134661411252600e-10,  5.2039248954331807e-10,  5.1944052029814735e-10,  5.1849069349017180e-10,  5.1754299633631547e-10,  5.1659741615609632e-10,  5.1565394037047015e-10,
                5.1471255650069041e-10,  5.1377325216718359e-10,  5.1283601508844003e-10,  5.1190083307991975e-10,  5.1096769405297315e-10,  5.1003658601377631e-10,  5.0910749706228069e-10,  5.0818041539117686e-10,
                5.0725532928487223e-10,  5.0633222711848235e-10,  5.0541109735683576e-10,  5.0449192855349198e-10,  5.0357470934977254e-10,  5.0265942847380484e-10,  5.0174607473957857e-10,  5.0083463704601453e-10,
                4.9992510437604570e-10,  4.9901746579571022e-10,  4.9811171045325626e-10,  4.9720782757825847e-10,  4.9630580648074590e-10,  4.9540563655034113e-10,  4.9450730725541055e-10,  4.9361080814222545e-10,
                4.9271612883413395e-10,  4.9182325903074343e-10,  4.9093218850711336e-10,  4.9004290711295843e-10,  4.8915540477186166e-10,  4.8826967148049753e-10,  4.8738569730786485e-10,  4.8650347239452921e-10,
                4.8562298695187492e-10,  4.8474423126136634e-10,  4.8386719567381830e-10,  4.8299187060867561e-10,  4.8211824655330145e-10,  4.8124631406227458e-10,  4.8037606375669512e-10,  4.7950748632349886e-10,
                4.7864057251477997e-10,  4.7777531314712193e-10,  4.7691169910093657e-10,  4.7604972131981118e-10,  4.7518937080986342e-10,  4.7433063863910407e-10,  4.7347351593680733e-10,  4.7261799389288880e-10,
                4.7176406375729074e-10,  4.7091171683937473e-10,  4.7006094450732151e-10,  4.6921173818753790e-10,  4.6836408936407075e-10,  4.6751798957802775e-10,  4.6667343042700503e-10,  4.6583040356452150e-10,
                4.6498890069945970e-10,  4.6414891359551322e-10,  4.6331043407064046e-10,  4.6247345399652477e-10,  4.6163796529804073e-10,  4.6080395995272661e-10,  4.5997142999026284e-10,  4.5914036749195645e-10,
                4.5831076459023138e-10,  4.5748261346812453e-10,  4.5665590635878756e-10,  4.5583063554499426e-10,  4.5500679335865352e-10,  4.5418437218032766e-10,  4.5336336443875624e-10,  4.5254376261038513e-10,
                4.5172555921890078e-10,  4.5090874683476967e-10,  4.5009331807478288e-10,  4.4927926560160559e-10,  4.4846658212333157e-10,  4.4765526039304254e-10,  4.4684529320837230e-10,  4.4603667341107563e-10,
                4.4522939388660181e-10,  4.4442344756367278e-10,  4.4361882741386585e-10,  4.4281552645120083e-10,  4.4201353773173159e-10,  4.4121285435314202e-10,  4.4041346945434621e-10,  4.3961537621509291e-10,
                4.3881856785557410e-10,  4.3802303763603778e-10,  4.3722877885640470e-10,  4.3643578485588917e-10,  4.3564404901262376e-10,  4.3485356474328796e-10,  4.3406432550274060e-10,  4.3327632478365614e-10,
                4.3248955611616458e-10,  4.3170401306749519e-10,  4.3091968924162374e-10,  4.3013657827892340e-10,  4.2935467385581916e-10,  4.2857396968444570e-10,  4.2779445951230869e-10,  4.2701613712194959e-10,
                4.2623899633061360e-10,  4.2546303098992114e-10,  4.2468823498554234e-10,  4.2391460223687498e-10,  4.2314212669672541e-10,  4.2237080235099267e-10,  4.2160062321835570e-10,  4.2083158334996357e-10,
                4.2006367682912871e-10,  4.1929689777102310e-10,  4.1853124032237736e-10,  4.1776669866118274e-10,  4.1700326699639596e-10,  4.1624093956764680e-10,  4.1547971064494853e-10,  4.1471957452841096e-10,
                4.1396052554795629e-10,  4.1320255806303754e-10,  4.1244566646235960e-10,  4.1168984516360291e-10,  4.1093508861314964e-10,  4.1018139128581239e-10,  4.0942874768456537e-10,  4.0867715234027803e-10,
                4.0792659981145113e-10,  4.0717708468395509e-10,  4.0642860157077080e-10,  4.0568114511173271e-10,  4.0493470997327413e-10,  4.0418929084817491e-10,  4.0344488245531123e-10,  4.0270147953940764e-10,
                4.0195907687079124e-10,  4.0121766924514801e-10,  4.0047725148328121e-10,  3.9973781843087193e-10,  3.9899936495824154e-10,  3.9826188596011635e-10,  3.9752537635539410e-10,  3.9678983108691249e-10,
                3.9605524512121962e-10,  3.9532161344834638e-10,  3.9458893108158066e-10,  3.9385719305724347e-10,  3.9312639443446688e-10,  3.9239653029497372e-10,  3.9166759574285914e-10,  3.9093958590437387e-10,
                3.9021249592770925e-10,  3.8948632098278389e-10,  3.8876105626103212e-10,  3.8803669697519405e-10,  3.8731323835910723e-10,  3.8659067566750000e-10,  3.8586900417578634e-10,  3.8514821917986241e-10,
                3.8442831599590449e-10,  3.8370928996016856e-10,  3.8299113642879134e-10,  3.8227385077759280e-10,  3.8155742840188011e-10,  3.8084186471625312e-10,  3.8012715515441111e-10,  3.7941329516896111e-10,
                3.7870028023122740e-10,  3.7798810583106255e-10,  3.7727676747665968e-10,  3.7656626069436605e-10,  3.7585658102849798e-10,  3.7514772404115702e-10,  3.7443968531204741e-10,  3.7373246043829467e-10,
                3.7302604503426560e-10,  3.7232043473138925e-10,  3.7161562517797928e-10,  3.7091161203905732e-10,  3.7020839099617761e-10,  3.6950595774725260e-10,  3.6880430800637986e-10,  3.6810343750366991e-10,
                3.6740334198507519e-10,  3.6670401721222010e-10,  3.6600545896223207e-10,  3.6530766302757359e-10,  3.6461062521587532e-10,  3.6391434134977017e-10,  3.6321880726672831e-10,  3.6252401881889317e-10,
                3.6182997187291835e-10,  3.6113666230980548e-10,  3.6044408602474296e-10,  3.5975223892694559e-10,  3.5906111693949507e-10,  3.5837071599918134e-10,  3.5768103205634484e-10,  3.5699206107471945e-10,
                3.5630379903127637e-10,  3.5561624191606870e-10,  3.5492938573207689e-10,  3.5424322649505483e-10,  3.5355776023337679e-10,  3.5287298298788505e-10,  3.5218889081173824e-10,  3.5150547977026039e-10,
                3.5082274594079066e-10,  3.5014068541253373e-10,  3.4945929428641089e-10,  3.4877856867491172e-10,  3.4809850470194640e-10,  3.4741909850269869e-10,  3.4674034622347942e-10,  3.4606224402158061e-10,
                3.4538478806513021e-10,  3.4470797453294726e-10,  3.4403179961439771e-10,  3.4335625950925074e-10,  3.4268135042753552e-10,  3.4200706858939857e-10,  3.4133341022496151e-10,  3.4066037157417937e-10,
                3.3998794888669925e-10,  3.3931613842171952e-10,  3.3864493644784937e-10,  3.3797433924296881e-10,  3.3730434309408909e-10,  3.3663494429721342e-10,  3.3596613915719816e-10,  3.3529792398761430e-10,
                3.3463029511060933e-10,  3.3396324885676937e-10,  3.3329678156498167e-10,  3.3263088958229744e-10,  3.3196556926379485e-10,  3.3130081697244243e-10,  3.3063662907896267e-10,  3.2997300196169585e-10,
                3.2930993200646411e-10,  3.2864741560643579e-10,  3.2798544916198991e-10,  3.2732402908058084e-10,  3.2666315177660319e-10,  3.2600281367125682e-10,  3.2534301119241203e-10,  3.2468374077447483e-10,
                3.2402499885825242e-10,  3.2336678189081865e-10,  3.2270908632537970e-10,  3.2205190862113972e-10,  3.2139524524316665e-10,  3.2073909266225793e-10,  3.2008344735480644e-10,  3.1942830580266629e-10,
                3.1877366449301866e-10,  3.1811951991823773e-10,  3.1746586857575642e-10,  3.1681270696793219e-10,  3.1616003160191281e-10,  3.1550783898950196e-10,  3.1485612564702483e-10,  3.1420488809519358e-10,
                3.1355412285897272e-10,  3.1290382646744430e-10,  3.1225399545367302e-10,  3.1160462635457112e-10,  3.1095571571076316e-10,  3.1030726006645053e-10,  3.0965925596927582e-10,  3.0901169997018692e-10,
                3.0836458862330093e-10,  3.0771791848576771e-10,  3.0707168611763331e-10,  3.0642588808170299e-10,  3.0578052094340398e-10,  3.0513558127064790e-10,  3.0449106563369289e-10,  3.0384697060500529e-10,
                3.0320329275912107e-10,  3.0256002867250677e-10,  3.0191717492342007e-10,  3.0127472809176992e-10,  3.0063268475897627e-10,  2.9999104150782928e-10,  2.9934979492234812e-10,  2.9870894158763915e-10,
                2.9806847808975377e-10,  2.9742840101554554e-10,  2.9678870695252688e-10,  2.9614939248872517e-10,  2.9551045421253820e-10,  2.9487188871258907e-10,  2.9423369257758045e-10,  2.9359586239614813e-10,
                2.9295839475671402e-10,  2.9232128624733832e-10,  2.9168453345557104e-10,  2.9104813296830283e-10,  2.9041208137161494e-10,  2.8977637525062855e-10,  2.8914101118935315e-10,  2.8850598577053419e-10,
                2.8787129557549989e-10,  2.8723693718400714e-10,  2.8660290717408650e-10,  2.8596920212188637e-10,  2.8533581860151612e-10,  2.8470275318488834e-10,  2.8407000244156005e-10,  2.8343756293857292e-10,
                2.8280543124029245e-10,  2.8217360390824613e-10,  2.8154207750096043e-10,  2.8091084857379674e-10,  2.8027991367878617e-10,  2.7964926936446313e-10,  2.7901891217569780e-10,  2.7838883865352726e-10,
                2.7775904533498552e-10,  2.7712952875293212e-10,  2.7650028543587952e-10,  2.7587131190781913e-10,  2.7524260468804594e-10,  2.7461416029098176e-10,  2.7398597522599709e-10,  2.7335804599723143e-10,
                2.7273036910341215e-10,  2.7210294103767187e-10,  2.7147575828736417e-10,  2.7084881733387779e-10,  2.7022211465244922e-10,  2.6959564671197351e-10,  2.6896940997481353e-10,  2.6834340089660735e-10,
                2.6771761592607396e-10,  2.6709205150481708e-10,  2.6646670406712724e-10,  2.6584157003978182e-10,  2.6521664584184331e-10,  2.6459192788445548e-10,  2.6396741257063764e-10,  2.6334309629507674e-10,
                2.6271897544391748e-10,  2.6209504639455021e-10,  2.6147130551539668e-10,  2.6084774916569353e-10,  2.6022437369527357e-10,  2.5960117544434463e-10,  2.5897815074326614e-10,  2.5835529591232328e-10,
                2.5773260726149856e-10,  2.5711008109024104e-10,  2.5648771368723283e-10,  2.5586550133015305e-10,  2.5524344028543914e-10,  2.5462152680804529e-10,  2.5399975714119829e-10,  2.5337812751615033e-10,
                2.5275663415192907e-10,  2.5213527325508461e-10,  2.5151404101943352e-10,  2.5089293362579975e-10,  2.5027194724175238e-10,  2.4965107802134021e-10,  2.4903032210482297e-10,  2.4840967561839931e-10,
                2.4778913467393127e-10,  2.4716869536866527e-10,  2.4654835378494966e-10,  2.4592810598994844e-10,  2.4530794803535148e-10,  2.4468787595708078e-10,  2.4406788577499301e-10,  2.4344797349257802e-10,
                2.4282813509665334e-10,  2.4220836655705464e-10,  2.4158866382632189e-10,  2.4096902283938134e-10,  2.4034943951322306e-10,  2.3972990974657411e-10,  2.3911042941956704e-10,  2.3849099439340385e-10,
                2.3787160051001514e-10,  2.3725224359171446e-10,  2.3663291944084769e-10,  2.3601362383943736e-10,  2.3539435254882185e-10,  2.3477510130928928e-10,  2.3415586583970608e-10,  2.3353664183714001e-10,
                2.3291742497647763e-10,  2.3229821091003596e-10,  2.3167899526716840e-10,  2.3105977365386457e-10,  2.3044054165234412e-10,  2.2982129482064427e-10,  2.2920202869220097e-10,  2.2858273877542359e-10,
                2.2796342055326294e-10,  2.2734406948277247e-10,  2.2672468099466256e-10,  2.2610525049284774e-10,  2.2548577335398658e-10,  2.2486624492701424e-10,  2.2424666053266743e-10,  2.2362701546300158e-10,
                2.2300730498090022e-10,  2.2238752431957611e-10,  2.2176766868206419e-10,  2.2114773324070612e-10,  2.2052771313662605e-10,  2.1990760347919766e-10,  2.1928739934550208e-10,  2.1866709577977662e-10,
                2.1804668779285405e-10,  2.1742617036159211e-10,  2.1680553842829324e-10,  2.1618478690011416e-10,  2.1556391064846501e-10,  2.1494290450839803e-10,  2.1432176327798528e-10,  2.1370048171768533e-10,
                2.1307905454969859e-10,  2.1245747645731098e-10,  2.1183574208422571e-10,  2.1121384603388298e-10,  2.1059178286876704e-10,  2.0996954710970065e-10,  2.0934713323512635e-10,  2.0872453568037442e-10,
                2.0810174883691713e-10,  2.0747876705160888e-10,  2.0685558462591204e-10,  2.0623219581510804e-10,  2.0560859482749333e-10,  2.0498477582355993e-10,  2.0436073291516009e-10,  2.0373646016465476e-10,
                2.0311195158404533e-10,  2.0248720113408846e-10,  2.0186220272339326e-10,  2.0123695020750065e-10,  2.0061143738794431e-10,  1.9998565801129277e-10,  1.9935960576817217e-10,  1.9873327429226922e-10,
                1.9810665715931380e-10,  1.9747974788604072e-10,  1.9685253992913001e-10,  1.9622502668412537e-10,  1.9559720148432996e-10,  1.9496905759967913e-10,  1.9434058823558937e-10,  1.9371178653178293e-10,
                1.9308264556108736e-10,  1.9245315832820939e-10,  1.9182331776848243e-10,  1.9119311674658692e-10,  1.9056254805524292e-10,  1.8993160441387399e-10,  1.8930027846724184e-10,  1.8866856278405062e-10,
                1.8803644985552030e-10,  1.8740393209392809e-10,  1.8677100183111713e-10,  1.8613765131697139e-10,  1.8550387271785599e-10,  1.8486965811502185e-10,  1.8423499950297363e-10,  1.8359988878780002e-10,
                1.8296431778546521e-10,  1.8232827822006041e-10,  1.8169176172201431e-10,  1.8105475982626123e-10,  1.8041726397036577e-10,  1.7977926549260258e-10,  1.7914075562999006e-10,  1.7850172551627639e-10,
                1.7786216617987678e-10,  1.7722206854176011e-10,  1.7658142341328371e-10,  1.7594022149397449e-10,  1.7529845336925499e-10,  1.7465610950811236e-10,  1.7401318026070881e-10,  1.7336965585593149e-10,
                1.7272552639887995e-10,  1.7208078186828925e-10,  1.7143541211388667e-10,  1.7078940685367984e-10,  1.7014275567117417e-10,  1.6949544801251726e-10,  1.6884747318356785e-10,  1.6819882034688704e-10,
                1.6754947851864897e-10,  1.6689943656546850e-10,  1.6624868320114305e-10,  1.6559720698330574e-10,  1.6494499630998681e-10,  1.6429203941608029e-10,  1.6363832436971263e-10,  1.6298383906850997e-10,
                1.6232857123576050e-10,  1.6167250841646837e-10,  1.6101563797329525e-10,  1.6035794708238567e-10,  1.5969942272907198e-10,  1.5904005170345475e-10,  1.5837982059585398e-10,  1.5771871579212662e-10,
                1.5705672346884549e-10,  1.5639382958833448e-10,  1.5573001989355491e-10,  1.5506527990283735e-10,  1.5439959490445327e-10,  1.5373294995102052e-10,  1.5306532985373625e-10,  1.5239671917643083e-10,
                1.5172710222943593e-10,  1.5105646306325945e-10,  1.5038478546205996e-10,  1.4971205293691276e-10,  1.4903824871885935e-10,  1.4836335575173171e-10,  1.4768735668474247e-10,  1.4701023386483147e-10,
                1.4633196932875889e-10,  1.4565254479493461e-10,  1.4497194165497300e-10,  1.4429014096496159e-10,  1.4360712343643194e-10,  1.4292286942702005e-10,  1.4223735893080307e-10,  1.4155057156829873e-10,
                1.4086248657611276e-10,  1.4017308279621917e-10,  1.3948233866485725e-10,  1.3879023220102855e-10,  1.3809674099457591e-10,  1.3740184219382598e-10,  1.3670551249277542e-10,  1.3600772811780013e-10,
                1.3530846481386553e-10,  1.3460769783021495e-10,  1.3390540190551155e-10,  1.3320155125240840e-10,  1.3249611954151929e-10,  1.3178907988476177e-10,  1.3108040481804203e-10,  1.3037006628324973e-10,
                1.2965803560952858e-10,  1.2894428349378717e-10,  1.2822877998041169e-10,  1.2751149444014051e-10,  1.2679239554805786e-10,  1.2607145126066123e-10,  1.2534862879195463e-10,  1.2462389458851652e-10,
                1.2389721430348822e-10,  1.2316855276942530e-10,  1.2243787396995050e-10,  1.2170514101014298e-10,  1.2097031608559452e-10,  1.2023336045005849e-10,  1.1949423438161285e-10,  1.1875289714725277e-10,
                1.1800930696582312e-10,  1.1726342096919470e-10,  1.1651519516158156e-10,  1.1576458437688967e-10,  1.1501154223397911e-10,  1.1425602108971408e-10,  1.1349797198966558e-10,  1.1273734461632181e-10,
                1.1197408723465080e-10,  1.1120814663484813e-10,  1.1043946807208990e-10,  1.0966799520309749e-10,  1.0889367001930572e-10,  1.0811643277640967e-10,  1.0733622192004779e-10,  1.0655297400735929e-10,
                1.0576662362413283e-10,  1.0497710329724022e-10,  1.0418434340202327e-10,  1.0338827206427428e-10,  1.0258881505641964e-10,  1.0178589568748267e-10,  1.0097943468636444e-10,  1.0016935007794047e-10,
                9.9355557051426138e-11,  9.8537967820413584e-11,  9.7716491473927695e-11,  9.6891033817787655e-11,  9.6061497205492456e-11,  9.5227780357773397e-11,  9.4389778169872490e-11,  9.3547381505512080e-11,
                9.2700476976416340e-11,  9.1848946706128374e-11,  9.0992668076735594e-11,  9.0131513456968969e-11,  8.9265349909976451e-11,  8.8394038878884630e-11,  8.7517435848052538e-11,  8.6635389977683947e-11,
                8.5747743709195238e-11,  8.4854332338430307e-11,  8.3954983553466146e-11,  8.3049516933356062e-11,  8.2137743403704111e-11,  8.1219464644444716e-11,  8.0294472444604598e-11,  7.9362547998136687e-11,
                7.8423461134121788e-11,  7.7476969473714310e-11,  7.6522817505140443e-11,  7.5560735566812948e-11,  7.4590438727172600e-11,  7.3611625548161188e-11,  7.2623976717224670e-11,  7.1627153530375889e-11,
                7.0620796206037990e-11,  6.9604522006047914e-11,  6.8577923136206333e-11,  6.7540564393968474e-11,  6.6491980525093738e-11,  6.5431673244075055e-11,  6.4359107864651369e-11,  6.3273709476283028e-11,
                6.2174858589642476e-11,  6.1061886158294054e-11,  5.9934067863958190e-11,  5.8790617527955880e-11,  5.7630679480115609e-11,  5.6453319676589393e-11,  5.5257515306943502e-11,  5.4042142564828682e-11,
                5.2805962170320065e-11,  5.1547602118394598e-11,  5.0265536976686554e-11,  4.8958062851814894e-11,  4.7623266865583687e-11,  4.6258989598148026e-11,  4.4862778416433334e-11,  4.3431828838335324e-11,
                4.1962909969851513e-11,  4.0452268406103357e-11,  3.8895502500203240e-11,  3.7287395055053637e-11,  3.5621686373023860e-11,  3.3890759562872335e-11,  3.2085192958053583e-11,  3.0193104347591639e-11,
                2.8199155779290079e-11,  2.6082977872692119e-11,  2.3816541729154181e-11,  2.1359478493642041e-11,  1.8650001733616461e-11,  1.5585138274634860e-11,  1.1969808621937048e-11,  7.3451083004571372e-12
            };
            // (<diameter> + 1)-scaled heights of the boxes: { f(x_1), f(x_2) - f(x_1), ..., f(x_{n - 1}) - f(x_{n - 2}), f(m) - f(x_{n - 1}) }.
            const result_type  m_height_scaled[n_boxes] = {
                2.2240213579407440e-14,  2.4642959713948218e-14,  2.6802392523487013e-14,  2.8306271926673008e-14,  2.9496206216607086e-14,  3.0498020353581847e-14,  3.1373017455662675e-14,  3.2156019324447543e-14,
                3.2868850815898142e-14,  3.3526165711534075e-14,  3.4138317774434790e-14,  3.4712916206142334e-14,  3.5255731063521835e-14,  3.5771250889144177e-14,  3.6263042170514568e-14,  3.6733989947260534e-14,
                3.7186464042396393e-14,  3.7622437049855178e-14,  3.8043570052828662e-14,  3.8451276176098257e-14,  3.8846768553873831e-14,  3.9231097113170832e-14,  3.9605177182597034e-14,  3.9969812027995584e-14,
                4.0325710809293955e-14,  4.0673503038923112e-14,  4.1013750334679079e-14,  4.1346956056917869e-14,  4.1673573274480817e-14,  4.1994011398006198e-14,  4.2308641741448956e-14,  4.2617802214661255e-14,
                4.2921801306240478e-14,  4.3220921482655896e-14,  4.3515422104179706e-14,  4.3805541938409502e-14,  4.4091501336755538e-14,  4.4373504127136846e-14,  4.4651739266516228e-14,  4.4926382289231734e-14,
                4.5197596580920015e-14,  4.5465534502847400e-14,  4.5730338387417754e-14,  4.5992141422319331e-14,  4.6251068438056793e-14,  4.6507236611372749e-14,  4.6760756095204177e-14,  4.7011730584270668e-14,
                4.7260257824096240e-14,  4.7506430070178679e-14,  4.7750334503103278e-14,  4.7992053604621771e-14,  4.8231665499058191e-14,  4.8469244263841803e-14,  4.8704860212487167e-14,  4.8938580152929693e-14,
                4.9170467623770917e-14,  4.9400583110682251e-14,  4.9628984244951746e-14,  4.9855725985929185e-14,  5.0080860788925564e-14,  5.0304438759949260e-14,  5.0526507798509395e-14,  5.0747113729583906e-14,
                5.0966300425733139e-14,  5.1184109920237091e-14,  5.1400582512043881e-14,  5.1615756863237089e-14,  5.1829670089658826e-14,  5.2042357845262604e-14,  5.2253854400714361e-14,  5.2464192716710319e-14,
                5.2673404512436156e-14,  5.2881520329552417e-14,  5.3088569592055779e-14,  5.3294580662334090e-14,  5.3499580893704715e-14,  5.3703596679700148e-14,  5.3906653500341917e-14,  5.4108775965623047e-14,
                5.4309987856400684e-14,  5.4510312162883585e-14,  5.4709771120883876e-14,  5.4908386245988650e-14,  5.5106178365794396e-14,  5.5303167650335848e-14,  5.5499373640830452e-14,  5.5694815276850209e-14,
                5.5889510922024035e-14,  5.6083478388365925e-14,  5.6276734959317025e-14,  5.6469297411583146e-14,  5.6661182035843265e-14,  5.6852404656399032e-14,  5.7042980649830268e-14,  5.7232924962716789e-14,
                5.7422252128482648e-14,  5.7610976283414960e-14,  5.7799111181905871e-14,  5.7986670210962900e-14,  5.8173666404029845e-14,  5.8360112454157579e-14,  5.8546020726561481e-14,  5.8731403270599822e-14,
                5.8916271831205177e-14,  5.9100637859798891e-14,  5.9284512524716688e-14,  5.9467906721171751e-14,  5.9650831080779938e-14,  5.9833295980670273e-14,  6.0015311552202432e-14,  6.0196887689311609e-14,
                6.0378034056499927e-14,  6.0558760096492402e-14,  6.0739075037574406e-14,  6.0918987900626575e-14,  6.1098507505872176e-14,  6.1277642479351084e-14,  6.1456401259133705e-14,  6.1634792101287429e-14,
                6.1812823085607473e-14,  6.1990502121123331e-14,  6.2167836951391418e-14,  6.2344835159583897e-14,  6.2521504173383170e-14,  6.2697851269690957e-14,  6.2873883579160451e-14,  6.3049608090559549e-14,
                6.3225031654972761e-14,  6.3400160989848991e-14,  6.3575002682902005e-14,  6.3749563195870067e-14,  6.3923848868140869e-14,  6.4097865920247592e-14,  6.4271620457241615e-14,  6.4445118471947153e-14,
                6.4618365848102788e-14,  6.4791368363394666e-14,  6.4964131692385863e-14,  6.5136661409346223e-14,  6.5308962990986746e-14,  6.5481041819102436e-14,  6.5652903183127302e-14,  6.5824552282605058e-14,
                6.5995994229578871e-14,  6.6167234050903392e-14,  6.6338276690482111e-14,  6.6509127011432966e-14,  6.6679789798184996e-14,  6.6850269758508696e-14,  6.7020571525482618e-14,  6.7190699659398641e-14,
                6.7360658649608247e-14,  6.7530452916311993e-14,  6.7700086812294331e-14,  6.7869564624605783e-14,  6.8038890576194417e-14,  6.8208068827488493e-14,  6.8377103477932031e-14,  6.8545998567475041e-14,
                6.8714758078020006e-14,  6.8883385934826212e-14,  6.9051886007873405e-14,  6.9220262113186217e-14,  6.9388518014120736e-14,  6.9556657422614540e-14,  6.9724684000401461e-14,  6.9892601360192300e-14,
                7.0060413066822649e-14,  7.0228122638368949e-14,  7.0395733547233859e-14,  7.0563249221201962e-14,  7.0730673044466811e-14,  7.0898008358630261e-14,  7.1065258463675008e-14,  7.1232426618911215e-14,
                7.1399516043898076e-14,  7.1566529919341132e-14,  7.1733471387966117e-14,  7.1900343555370107e-14,  7.2067149490850679e-14,  7.2233892228213790e-14,  7.2400574766561057e-14,  7.2567200071057068e-14,
                7.2733771073677369e-14,  7.2900290673937719e-14,  7.3066761739605193e-14,  7.3233187107391705e-14,  7.3399569583630473e-14,  7.3565911944935964e-14,  7.3732216938847807e-14,  7.3898487284459168e-14,
                7.4064725673030054e-14,  7.4230934768585992e-14,  7.4397117208502517e-14,  7.4563275604075905e-14,  7.4729412541080537e-14,  7.4895530580313299e-14,  7.5061632258125393e-14,  7.5227720086941926e-14,
                7.5393796555769631e-14,  7.5559864130693058e-14,  7.5725925255359577e-14,  7.5891982351453494e-14,  7.6058037819159609e-14,  7.6224094037616505e-14,  7.6390153365359851e-14,  7.6556218140756017e-14,
                7.6722290682426251e-14,  7.6888373289661698e-14,  7.7054468242829503e-14,  7.7220577803770247e-14,  7.7386704216186961e-14,  7.7552849706025930e-14,  7.7719016481849539e-14,  7.7885206735201343e-14,
                7.8051422640963601e-14,  7.8217666357707459e-14,  7.8383940028035983e-14,  7.8550245778920241e-14,  7.8716585722028596e-14,  7.8882961954049428e-14,  7.9049376557007414e-14,  7.9215831598573571e-14,
                7.9382329132369209e-14,  7.9548871198263950e-14,  7.9715459822667979e-14,  7.9882097018818669e-14,  8.0048784787061723e-14,  8.0215525115126984e-14,  8.0382319978399035e-14,  8.0549171340182740e-14,
                8.0716081151963837e-14,  8.0883051353664723e-14,  8.1050083873895544e-14,  8.1217180630200711e-14,  8.1384343529300961e-14,  8.1551574467331064e-14,  8.1718875330073303e-14,  8.1886247993186806e-14,
                8.2053694322432867e-14,  8.2221216173896321e-14,  8.2388815394203094e-14,  8.2556493820734017e-14,  8.2724253281834990e-14,  8.2892095597023586e-14,  8.3060022577192198e-14,  8.3228036024807787e-14,
                8.3396137734108336e-14,  8.3564329491296082e-14,  8.3732613074727597e-14,  8.3900990255100815e-14,  8.4069462795639049e-14,  8.4238032452272097e-14,  8.4406700973814498e-14,  8.4575470102140998e-14,
                8.4744341572359308e-14,  8.4913317112980202e-14,  8.5082398446085041e-14,  8.5251587287490757e-14,  8.5420885346912382e-14,  8.5590294328123167e-14,  8.5759815929112349e-14,  8.5929451842240631e-14,
                8.6099203754393416e-14,  8.6269073347131860e-14,  8.6439062296841790e-14,  8.6609172274880536e-14,  8.6779404947721733e-14,  8.6949761977098132e-14,  8.7120245020142480e-14,  8.7290855729526497e-14,
                8.7461595753598014e-14,  8.7632466736516300e-14,  8.7803470318385630e-14,  8.7974608135387136e-14,  8.8145881819908971e-14,  8.8317293000674843e-14,  8.8488843302870939e-14,  8.8660534348271298e-14,
                8.8832367755361646e-14,  8.9004345139461753e-14,  8.9176468112846328e-14,  8.9348738284864505e-14,  8.9521157262057934e-14,  8.9693726648277526e-14,  8.9866448044798880e-14,  9.0039323050436422e-14,
                9.0212353261656282e-14,  9.0385540272687956e-14,  9.0558885675634764e-14,  9.0732391060583142e-14,  9.0906058015710802e-14,  9.1079888127393772e-14,  9.1253882980312363e-14,  9.1428044157556069e-14,
                9.1602373240727451e-14,  9.1776871810045004e-14,  9.1951541444445048e-14,  9.2126383721682674e-14,  9.2301400218431747e-14,  9.2476592510384009e-14,  9.2651962172347298e-14,  9.2827510778342910e-14,
                9.3003239901702116e-14,  9.3179151115161866e-14,  9.3355245990959704e-14,  9.3531526100927899e-14,  9.3707993016586833e-14,  9.3884648309237650e-14,  9.4061493550054197e-14,  9.4238530310174267e-14,
                9.4415760160790175e-14,  9.4593184673238676e-14,  9.4770805419090241e-14,  9.4948623970237727e-14,  9.5126641898984438e-14,  9.5304860778131606e-14,  9.5483282181065306e-14,  9.5661907681842829e-14,
                9.5840738855278510e-14,  9.6019777277029058e-14,  9.6199024523678373e-14,  9.6378482172821890e-14,  9.6558151803150450e-14,  9.6738034994533723e-14,  9.6918133328103188e-14,  9.7098448386334703e-14,
                9.7278981753130657e-14,  9.7459735013901734e-14,  9.7640709755648302e-14,  9.7821907567041429e-14,  9.8003330038503564e-14,  9.8184978762288864e-14,  9.8366855332563208e-14,  9.8548961345483907e-14,
                9.8731298399279099e-14,  9.8913868094326883e-14,  9.9096672033234163e-14,  9.9279711820915245e-14,  9.9462989064670187e-14,  9.9646505374262909e-14,  9.9830262361999093e-14,  1.0001426164280386e-13,
                1.0019850483429926e-13,  1.0038299355688158e-13,  1.0056772943379846e-13,  1.0075271409122586e-13,  1.0093794915834488e-13,  1.0112343626741842e-13,  1.0130917705386773e-13,  1.0149517315634886e-13,
                1.0168142621682893e-13,  1.0186793788066239e-13,  1.0205470979666714e-13,  1.0224174361720060e-13,  1.0242904099823569e-13,  1.0261660359943682e-13,  1.0280443308423570e-13,  1.0299253111990729e-13,
                1.0318089937764560e-13,  1.0336953953263953e-13,  1.0355845326414868e-13,  1.0374764225557918e-13,  1.0393710819455953e-13,  1.0412685277301652e-13,  1.0431687768725106e-13,  1.0450718463801418e-13,
                1.0469777533058303e-13,  1.0488865147483692e-13,  1.0507981478533351e-13,  1.0527126698138501e-13,  1.0546300978713448e-13,  1.0565504493163230e-13,  1.0584737414891265e-13,  1.0603999917807019e-13,
                1.0623292176333684e-13,  1.0642614365415867e-13,  1.0661966660527301e-13,  1.0681349237678565e-13,  1.0700762273424822e-13,  1.0720205944873579e-13,  1.0739680429692455e-13,  1.0759185906116984e-13,
                1.0778722552958421e-13,  1.0798290549611583e-13,  1.0817890076062704e-13,  1.0837521312897316e-13,  1.0857184441308149e-13,  1.0876879643103068e-13,  1.0896607100713019e-13,  1.0916366997200014e-13,
                1.0936159516265135e-13,  1.0955984842256577e-13,  1.0975843160177706e-13,  1.0995734655695159e-13,  1.1015659515146967e-13,  1.1035617925550715e-13,  1.1055610074611732e-13,  1.1075636150731317e-13,
                1.1095696343014992e-13,  1.1115790841280805e-13,  1.1135919836067651e-13,  1.1156083518643646e-13,  1.1176282081014532e-13,  1.1196515715932117e-13,  1.1216784616902765e-13,  1.1237088978195918e-13,
                1.1257428994852666e-13,  1.1277804862694353e-13,  1.1298216778331233e-13,  1.1318664939171167e-13,  1.1339149543428368e-13,  1.1359670790132188e-13,  1.1380228879135955e-13,  1.1400824011125861e-13,
                1.1421456387629894e-13,  1.1442126211026824e-13,  1.1462833684555238e-13,  1.1483579012322628e-13,  1.1504362399314532e-13,  1.1525184051403727e-13,  1.1546044175359483e-13,  1.1566942978856865e-13,
                1.1587880670486098e-13,  1.1608857459761985e-13,  1.1629873557133393e-13,  1.1650929173992785e-13,  1.1672024522685827e-13,  1.1693159816521046e-13,  1.1714335269779560e-13,  1.1735551097724866e-13,
                1.1756807516612696e-13,  1.1778104743700939e-13,  1.1799442997259626e-13,  1.1820822496580993e-13,  1.1842243461989602e-13,  1.1863706114852544e-13,  1.1885210677589699e-13,  1.1906757373684089e-13,
                1.1928346427692282e-13,  1.1949978065254890e-13,  1.1971652513107133e-13,  1.1993369999089481e-13,  1.2015130752158380e-13,  1.2036935002397049e-13,  1.2058782981026368e-13,  1.2080674920415839e-13,
                1.2102611054094632e-13,  1.2124591616762723e-13,  1.2146616844302107e-13,  1.2168686973788105e-13,  1.2190802243500755e-13,  1.2212962892936295e-13,  1.2235169162818737e-13,  1.2257421295111530e-13,
                1.2279719533029320e-13,  1.2302064121049800e-13,  1.2324455304925660e-13,  1.2346893331696634e-13,  1.2369378449701642e-13,  1.2391910908591036e-13,  1.2414490959338945e-13,  1.2437118854255723e-13,
                1.2459794847000505e-13,  1.2482519192593859e-13,  1.2505292147430559e-13,  1.2528113969292451e-13,  1.2550984917361445e-13,  1.2573905252232606e-13,  1.2596875235927360e-13,  1.2619895131906825e-13,
                1.2642965205085243e-13,  1.2666085721843541e-13,  1.2689256950043006e-13,  1.2712479159039083e-13,  1.2735752619695295e-13,  1.2759077604397286e-13,  1.2782454387066991e-13,  1.2805883243176936e-13,
                1.2829364449764662e-13,  1.2852898285447283e-13,  1.2876485030436179e-13,  1.2900124966551819e-13,  1.2923818377238723e-13,  1.2947565547580563e-13,  1.2971366764315399e-13,  1.2995222315851065e-13,
                1.3019132492280693e-13,  1.3043097585398380e-13,  1.3067117888715015e-13,  1.3091193697474237e-13,  1.3115325308668563e-13,  1.3139513021055657e-13,  1.3163757135174762e-13,  1.3188057953363283e-13,
                1.3212415779773537e-13,  1.3236830920389659e-13,  1.3261303683044677e-13,  1.3285834377437747e-13,  1.3310423315151565e-13,  1.3335070809669941e-13,  1.3359777176395553e-13,  1.3384542732667871e-13,
                1.3409367797781261e-13,  1.3434252693003274e-13,  1.3459197741593102e-13,  1.3484203268820239e-13,  1.3509269601983316e-13,  1.3534397070429127e-13,  1.3559586005571853e-13,  1.3584836740912474e-13,
                1.3610149612058386e-13,  1.3635524956743211e-13,  1.3660963114846813e-13,  1.3686464428415522e-13,  1.3712029241682562e-13,  1.3737657901088690e-13,  1.3763350755303055e-13,  1.3789108155244265e-13,
                1.3814930454101684e-13,  1.3840818007356940e-13,  1.3866771172805668e-13,  1.3892790310579478e-13,  1.3918875783168155e-13,  1.3945027955442096e-13,  1.3971247194674978e-13,  1.3997533870566680e-13,
                1.4023888355266437e-13,  1.4050311023396250e-13,  1.4076802252074542e-13,  1.4103362420940077e-13,  1.4129991912176124e-13,  1.4156691110534897e-13,  1.4183460403362252e-13,  1.4210300180622651e-13,
                1.4237210834924408e-13,  1.4264192761545205e-13,  1.4291246358457884e-13,  1.4318372026356536e-13,  1.4345570168682862e-13,  1.4372841191652841e-13,  1.4400185504283684e-13,  1.4427603518421092e-13,
                1.4455095648766815e-13,  1.4482662312906527e-13,  1.4510303931338004e-13,  1.4538020927499627e-13,  1.4565813727799202e-13,  1.4593682761643107e-13,  1.4621628461465775e-13,  1.4649651262759498e-13,
                1.4677751604104591e-13,  1.4705929927199883e-13,  1.4734186676893567e-13,  1.4762522301214403e-13,  1.4790937251403279e-13,  1.4819431981945139e-13,  1.4848006950601277e-13,  1.4876662618442012e-13,
                1.4905399449879735e-13,  1.4934217912702353e-13,  1.4963118478107112e-13,  1.4992101620734829e-13,  1.5021167818704515e-13,  1.5050317553648420e-13,  1.5079551310747474e-13,  1.5108869578767171e-13,
                1.5138272850093858e-13,  1.5167761620771471e-13,  1.5197336390538704e-13,  1.5226997662866622e-13,  1.5256745944996731e-13,  1.5286581747979502e-13,  1.5316505586713358e-13,  1.5346517979984142e-13,
                1.5376619450505052e-13,  1.5406810524957073e-13,  1.5437091734029890e-13,  1.5467463612463314e-13,  1.5497926699089204e-13,  1.5528481536873915e-13,  1.5559128672961259e-13,  1.5589868658716002e-13,
                1.5620702049767898e-13,  1.5651629406056274e-13,  1.5682651291875160e-13,  1.5713768275918992e-13,  1.5744980931328879e-13,  1.5776289835739457e-13,  1.5807695571326329e-13,  1.5839198724854097e-13,
                1.5870799887725013e-13,  1.5902499656028234e-13,  1.5934298630589714e-13,  1.5966197417022719e-13,  1.5998196625778996e-13,  1.6030296872200597e-13,  1.6062498776572358e-13,  1.6094802964175064e-13,
                1.6127210065339294e-13,  1.6159720715499963e-13,  1.6192335555251573e-13,  1.6225055230404175e-13,  1.6257880392040070e-13,  1.6290811696571244e-13,  1.6323849805797554e-13,  1.6356995386965683e-13,
                1.6390249112828867e-13,  1.6423611661707412e-13,  1.6457083717550009e-13,  1.6490665969995864e-13,  1.6524359114437656e-13,  1.6558163852085330e-13,  1.6592080890030746e-13,  1.6626110941313193e-13,
                1.6660254724985781e-13,  1.6694512966182734e-13,  1.6728886396187582e-13,  1.6763375752502286e-13,  1.6797981778917291e-13,  1.6832705225582547e-13,  1.6867546849079480e-13,  1.6902507412493966e-13,
                1.6937587685490292e-13,  1.6972788444386146e-13,  1.7008110472228628e-13,  1.7043554558871325e-13,  1.7079121501052445e-13,  1.7114812102474039e-13,  1.7150627173882332e-13,  1.7186567533149168e-13,
                1.7222634005354606e-13,  1.7258827422870661e-13,  1.7295148625446245e-13,  1.7331598460293286e-13,  1.7368177782174085e-13,  1.7404887453489897e-13,  1.7441728344370786e-13,  1.7478701332766753e-13,
                1.7515807304540176e-13,  1.7553047153559569e-13,  1.7590421781794692e-13,  1.7627932099413040e-13,  1.7665579024877718e-13,  1.7703363485046742e-13,  1.7741286415273779e-13,  1.7779348759510366e-13,
                1.7817551470409609e-13,  1.7855895509431418e-13,  1.7894381846949279e-13,  1.7933011462358607e-13,  1.7971785344186692e-13,  1.8010704490204286e-13,  1.8049769907538843e-13,  1.8088982612789447e-13,
                1.8128343632143459e-13,  1.8167854001494917e-13,  1.8207514766564705e-13,  1.8247326983022547e-13,  1.8287291716610837e-13,  1.8327410043270347e-13,  1.8367683049267846e-13,  1.8408111831325672e-13,
                1.8448697496753273e-13,  1.8489441163580773e-13,  1.8530343960694592e-13,  1.8571407027975149e-13,  1.8612631516436708e-13,  1.8654018588369379e-13,  1.8695569417483335e-13,  1.8737285189055281e-13,
                1.8779167100077206e-13,  1.8821216359407473e-13,  1.8863434187924288e-13,  1.8905821818681589e-13,  1.8948380497067401e-13,  1.8991111480964702e-13,  1.9034016040914860e-13,  1.9077095460283664e-13,
                1.9120351035430028e-13,  1.9163784075877392e-13,  1.9207395904487895e-13,  1.9251187857639353e-13,  1.9295161285405108e-13,  1.9339317551736800e-13,  1.9383658034650117e-13,  1.9428184126413586e-13,
                1.9472897233740450e-13,  1.9517798777983713e-13,  1.9562890195334395e-13,  1.9608172937023066e-13,  1.9653648469524737e-13,  1.9699318274767144e-13,  1.9745183850342527e-13,  1.9791246709722949e-13,
                1.9837508382479228e-13,  1.9883970414503570e-13,  1.9930634368235958e-13,  1.9977501822894384e-13,  2.0024574374708995e-13,  2.0071853637160235e-13,  2.0119341241221068e-13,  2.0167038835603355e-13,
                2.0214948087008476e-13,  2.0263070680382290e-13,  2.0311408319174504e-13,  2.0359962725602559e-13,  2.0408735640920122e-13,  2.0457728825690271e-13,  2.0506944060063481e-13,  2.0556383144060506e-13,
                2.0606047897860260e-13,  2.0655940162092800e-13,  2.0706061798137524e-13,  2.0756414688426685e-13,  2.0807000736754348e-13,  2.0857821868590881e-13,  2.0908880031403134e-13,  2.0960177194980386e-13,
                2.1011715351766221e-13,  2.1063496517196436e-13,  2.1115522730043121e-13,  2.1167796052765045e-13,  2.1220318571864484e-13,  2.1273092398250627e-13,  2.1326119667609711e-13,  2.1379402540782031e-13,
                2.1432943204145973e-13,  2.1486743870009226e-13,  2.1540806777007338e-13,  2.1595134190509771e-13,  2.1649728403033629e-13,  2.1704591734665230e-13,  2.1759726533489691e-13,  2.1815135176028722e-13,
                2.1870820067686797e-13,  2.1926783643205907e-13,  2.1983028367129085e-13,  2.2039556734272897e-13,  2.2096371270209119e-13,  2.2153474531755801e-13,  2.2210869107477942e-13,  2.2268557618197986e-13,
                2.2326542717516390e-13,  2.2384827092342476e-13,  2.2443413463435826e-13,  2.2502304585958461e-13,  2.2561503250038049e-13,  2.2621012281342432e-13,  2.2680834541665706e-13,  2.2740972929526155e-13,
                2.2801430380776321e-13,  2.2862209869225481e-13,  2.2923314407274864e-13,  2.2984747046565889e-13,  2.3046510878641751e-13,  2.3108609035622691e-13,  2.3171044690895261e-13,  2.3233821059815958e-13,
                2.3296941400429561e-13,  2.3360409014202540e-13,  2.3424227246771920e-13,  2.3488399488709978e-13,  2.3552929176305175e-13,  2.3617819792359724e-13,  2.3683074867004235e-13,  2.3748697978529837e-13,
                2.3814692754238260e-13,  2.3881062871310305e-13,  2.3947812057693195e-13,  2.4014944093007286e-13,  2.4082462809472634e-13,  2.4150372092855947e-13,  2.4218675883438445e-13,  2.4287378177005172e-13,
                2.4356483025856340e-13,  2.4425994539841269e-13,  2.4495916887415536e-13,  2.4566254296721940e-13,  2.4637011056695932e-13,  2.4708191518196156e-13,  2.4779800095160783e-13,  2.4851841265790340e-13,
                2.4924319573757743e-13,  2.4997239629446292e-13,  2.5070606111216382e-13,  2.5144423766701727e-13,  2.5218697414135910e-13,  2.5293431943710107e-13,  2.5368632318962843e-13,  2.5444303578202692e-13,
                2.5520450835964838e-13,  2.5597079284502447e-13,  2.5674194195313863e-13,  2.5751800920706617e-13,  2.5829904895399326e-13,  2.5908511638162563e-13,  2.5987626753499824e-13,  2.6067255933369750e-13,
                2.6147404958950823e-13,  2.6228079702449755e-13,  2.6309286128954871e-13,  2.6391030298335820e-13,  2.6473318367190965e-13,  2.6556156590843899e-13,  2.6639551325390540e-13,  2.6723509029798338e-13,
                2.6808036268059161e-13,  2.6893139711397491e-13,  2.6978826140535629e-13,  2.7065102448017630e-13,  2.7151975640593810e-13,  2.7239452841667666e-13,  2.7327541293807180e-13,  2.7416248361322493e-13,
                2.7505581532912045e-13,  2.7595548424379340e-13,  2.7686156781422570e-13,  2.7777414482499422e-13,  2.7869329541769474e-13,  2.7961910112116671e-13,  2.8055164488254474e-13,  2.8149101109916374e-13,
                2.8243728565134536e-13,  2.8339055593609493e-13,  2.8435091090173872e-13,  2.8531844108353276e-13,  2.8629323864027565e-13,  2.8727539739195881e-13,  2.8826501285848931e-13,  2.8926218229952140e-13,
                2.9026700475543453e-13,  2.9127958108949705e-13,  2.9230001403125634e-13,  2.9332840822119773e-13,  2.9436487025671635e-13,  2.9540950873944766e-13,  2.9646243432400449e-13,  2.9752375976817015e-13,
                2.9859359998459936e-13,  2.9967207209408079e-13,  3.0075929548041726e-13,  3.0185539184698194e-13,  3.0296048527501150e-13,  3.0407470228369940e-13,  3.0519817189215559e-13,  3.0633102568330134e-13,
                3.0747339786977109e-13,  3.0862542536189631e-13,  3.0978724783784944e-13,  3.1095900781602946e-13,  3.1214085072977446e-13,  3.1333292500448977e-13,  3.1453538213728481e-13,  3.1574837677921548e-13,
                3.1697206682023341e-13,  3.1820661347694817e-13,  3.1945218138331284e-13,  3.2070893868434908e-13,  3.2197705713303253e-13,  3.2325671219046540e-13,  3.2454808312946873e-13,  3.2585135314173326e-13,
                3.2716670944867418e-13,  3.2849434341614197e-13,  3.2983445067314896e-13,  3.3118723123477868e-13,  3.3255288962945321e-13,  3.3393163503074248e-13,  3.3532368139390810e-13,  3.3672924759738413e-13,
                3.3814855758940697e-13,  3.3958184054001746e-13,  3.4102933099866912e-13,  3.4249126905768863e-13,  3.4396790052184704e-13,  3.4545947708431334e-13,  3.4696625650927647e-13,  3.4848850282153613e-13,
                3.5002648650337901e-13,  3.5158048469907359e-13,  3.5315078142733408e-13,  3.5473766780212335e-13,  3.5634144226218418e-13,  3.5796241080970950e-13,  3.5960088725858470e-13,  3.6125719349265894e-13,
                3.6293165973452770e-13,  3.6462462482533590e-13,  3.6633643651613928e-13,  3.6806745177139278e-13,  3.6981803708516645e-13,  3.7158856881072473e-13,  3.7337943350414131e-13,  3.7519102828266147e-13,
                3.7702376119856542e-13,  3.7887805162933136e-13,  3.8075433068494441e-13,  3.8265304163324894e-13,  3.8457464034429626e-13,  3.8651959575469829e-13,  3.8848839035306005e-13,  3.9048152068763102e-13,
                3.9249949789738690e-13,  3.9454284826783044e-13,  3.9661211381288209e-13,  3.9870785288432004e-13,  4.0083064081032396e-13,  4.0298107056477890e-13,  4.0515975346910554e-13,  4.0736731992850093e-13,
                4.0960442020460099e-13,  4.1187172522671277e-13,  4.1416992744391201e-13,  4.1649974172046055e-13,  4.1886190627716991e-13,  4.2125718368152239e-13,  4.2368636188956203e-13,  4.2615025534278363e-13,
                4.2864970612348337e-13,  4.3118558517228785e-13,  4.3375879357185423e-13,  4.3637026390103248e-13,  4.3902096166410508e-13,  4.4171188680007179e-13,  4.4444407527733006e-13,  4.4721860077951854e-13,
                4.5003657648874516e-13,  4.5289915697291623e-13,  4.5580754018442289e-13,  4.5876296957803121e-13,  4.6176673635646669e-13,  4.6482018185288939e-13,  4.6792470006022833e-13,  4.7108174031819053e-13,
                4.7429281016968934e-13,  4.7755947839945756e-13,  4.8088337826873295e-13,  4.8426621096113968e-13,  4.8770974925625042e-13,  4.9121584144881636e-13,  4.9478641553331112e-13,  4.9842348367526956e-13,
                5.0212914699293348e-13,  5.0590560067496789e-13,  5.0975513946251055e-13,  5.1368016352659458e-13,  5.1768318477507479e-13,  5.2176683362663173e-13,  5.2593386629327078e-13,  5.3018717261702735e-13,
                5.3452978451139539e-13,  5.3896488506338223e-13,  5.4349581835813920e-13,  5.4812610009491494e-13,  5.5285942907073395e-13,  5.5769969961683816e-13,  5.6265101508268761e-13,  5.6771770247336275e-13,
                5.7290432835873806e-13,  5.7821571618703105e-13,  5.8365696515153507e-13,  5.8923347077782942e-13,  5.9495094741988980e-13,  6.0081545287772686e-13,  6.0683341537696856e-13,  6.1301166318277629e-13,
                6.1935745715736338e-13,  6.2587852661302198e-13,  6.3258310886198535e-13,  6.3947999292188454e-13,  6.4657856790248106e-13,  6.5388887667755642e-13,  6.6142167553748092e-13,  6.6918850062570285e-13,
                6.7720174208941067e-13,  6.8547472702486951e-13,  6.9402181247627069e-13,  7.0285848995935749e-13,  7.1200150323504576e-13,  7.2146898136302752e-13,  7.3128058943255854e-13,  7.4145769981192995e-13,
                7.5202358729803947e-13,  7.6300365220658916e-13,  7.7442567625191540e-13,  7.8632011706214250e-13,  7.9872044841055055e-13,  8.1166355478334840e-13,  8.2519019083354647e-13,  8.3934551870418153e-13,
                8.5417973929345859e-13,  8.6974883748321162e-13,  8.8611546643650513e-13,  9.0335000266759436e-13,  9.2153181221874303e-13,  9.4075077966995113e-13,  9.6110916688349541e-13,  9.8272388880584759e-13,
                1.0057293214242093e-12,  1.0302807951906043e-12,  1.0565589804668852e-12,  1.0847754467217388e-12,  1.1151797849275401e-12,  1.1480688394204498e-12,  1.1837988277884881e-12,  1.2228014781139489e-12,
                1.2656058538091035e-12,  1.3128683901616642e-12,  1.3654150502472865e-12,  1.4243018162651338e-12,  1.4909037136694149e-12,  1.5670496968999585e-12,  1.6552340691900966e-12,  1.7589613803638141e-12,
                1.8833366827141761e-12,  2.0361365469818934e-12,  2.2298999201759657e-12,  2.4864139129856089e-12,  2.8476407272917762e-12,  3.4076376843665013e-12,  4.4368716475029183e-12,  7.2304590113944478e-12
            };
            // Density at the proper x-endpoints of the boxes, tail boxes treated specially: { 0, f(x_1), f(x_2), ..., f(x_{n - 1}) }.
            const result_type  m_bottom[n_boxes] = {
                0,                       9.5520989979610054e-5,   2.0136169602766317e-4,   3.1647709537059480e-4,   4.3805160756733828e-4,   5.6473684862373761e-4,   6.9572484863511400e-4,   8.3047093258402232e-4,
                9.6857998395206853e-4,   1.1097506232634540e-3,   1.2537444085547694e-3,   1.4003673669364223e-3,   1.5494582067905920e-3,   1.7008804187049896e-3,   1.8545167714108748e-3,   2.0102653515867037e-3,
                2.1680366370617805e-3,   2.3277512839777529e-3,   2.4893384207026996e-3,   2.6527343099026837e-3,   2.8178812835684897e-3,   2.9847268840626590e-3,   3.1532231631499277e-3,   3.3233261039014674e-3,
                3.4949951393889759e-3,   3.6681927485028471e-3,   3.8428841138687785e-3,   4.0190368302425342e-3,   4.1966206542961456e-3,   4.3756072886175003e-3,   4.5559701941997882e-3,   4.7376844268174919e-3,
                4.9207264935568584e-3,   5.1050742264525713e-3,   5.2907066707235622e-3,   5.4776039855326496e-3,   5.6657473555416748e-3,   5.8551189118145801e-3,   6.0457016608495539e-3,   6.2374794207087602e-3,
                6.4304367633686041e-3,   6.6245589625414570e-3,   6.8198319463263462e-3,   7.0162422541353188e-3,   7.2137769974171872e-3,   7.4124238237636990e-3,   7.6121708840368788e-3,   7.8130068022020134e-3,
                8.0149206475898189e-3,   8.2179019093448403e-3,   8.4219404728459688e-3,   8.6270265979098577e-3,   8.8331508986095872e-3,   9.0403043245596536e-3,   9.2484781435346898e-3,   9.4576639253035737e-3,
                9.6678535265730815e-3,   9.8790390769462044e-3,   1.0091212965809915e-2,   1.0304367830075682e-2,   1.0518496542703585e-2,   1.0733592201947549e-2,   1.0949648121265166e-2,   1.1166657819840853e-2,
                1.1384615013675808e-2,   1.1603513607202443e-2,   1.1823347685384730e-2,   1.2044111506269308e-2,   1.2265799493955199e-2,   1.2488406231952753e-2,   1.2711926456904885e-2,   1.2936355052645899e-2,
                1.3161687044575211e-2,   1.3387917594325103e-2,   1.3615041994703290e-2,   1.3843055664892590e-2,   1.4071954145891349e-2,   1.4301733096179517e-2,   1.4532388287596403e-2,   1.4763915601417175e-2,
                1.4996311024616117e-2,   1.5229570646305515e-2,   1.5463690654339851e-2,   1.5698667332075693e-2,   1.5934497055278350e-2,   1.6171176289166980e-2,   1.6408701585590378e-2,   1.6647069580326229e-2,
                1.6886276990497062e-2,   1.7126320612096590e-2,   1.7367197317620544e-2,   1.7608904053796471e-2,   1.7851437839407318e-2,   1.8094795763203967e-2,   1.8338974981902159e-2,   1.8583972718259541e-2,
                1.8829786259228832e-2,   1.9076412954183331e-2,   1.9323850213211230e-2,   1.9572095505475384e-2,   1.9821146357635407e-2,   2.0071000352329129e-2,   2.0321655126710618e-2,   2.0573108371042138e-2,
                2.0825357827337551e-2,   2.1078401288054824e-2,   2.1332236594835399e-2,   2.1586861637288360e-2,   2.1842274351817371e-2,   2.2098472720488541e-2,   2.2355454769937408e-2,   2.2613218570313369e-2,
                2.2871762234259947e-2,   2.3131083915929388e-2,   2.3391181810030133e-2,   2.3652054150905805e-2,   2.3913699211644416e-2,   2.4176115303216548e-2,   2.4439300773641341e-2,   2.4703254007179173e-2,
                2.4967973423549962e-2,   2.5233457477176080e-2,   2.5499704656448923e-2,   2.5766713483018210e-2,   2.6034482511103133e-2,   2.6303010326824542e-2,   2.6572295547557336e-2,   2.6842336821302342e-2,
                2.7113132826076912e-2,   2.7384682269323585e-2,   2.7656983887336121e-2,   2.7930036444702298e-2,   2.8203838733762845e-2,   2.8478389574085957e-2,   2.8753687811956813e-2,   2.9029732319881590e-2,
                2.9306521996105449e-2,   2.9584055764144014e-2,   2.9862332572327883e-2,   3.0141351393359717e-2,   3.0421111223883484e-2,   3.0701611084065447e-2,   3.0982850017186500e-2,   3.1264827089245486e-2,
                3.1547541388573117e-2,   3.1830992025456163e-2,   3.2115178131771571e-2,   3.2400098860630190e-2,   3.2685753386029805e-2,   3.2972140902517164e-2,   3.3259260624858737e-2,   3.3547111787719914e-2,
                3.3835693645352389e-2,   3.4125005471289476e-2,   3.4415046558049104e-2,   3.4705816216844269e-2,   3.4997313777300709e-2,   3.5289538587181587e-2,   3.5582490012118967e-2,   3.5876167435351893e-2,
                3.6170570257470861e-2,   3.6465697896168509e-2,   3.6761549785996334e-2,   3.7058125378127270e-2,   3.7355424140123953e-2,   3.7653445555712508e-2,   3.7952189124561713e-2,   3.8251654362067372e-2,
                3.8551840799141763e-2,   3.8852747982008017e-2,   3.9154375471999289e-2,   3.9456722845362589e-2,   3.9759789693067149e-2,   4.0063575620617202e-2,   4.0368080247869054e-2,   4.0673303208852325e-2,
                4.0979244151595269e-2,   4.1285902737954038e-2,   4.1593278643445814e-2,   4.1901371557085680e-2,   4.2210181181227159e-2,   4.2519707231406306e-2,   4.2829949436189273e-2,   4.3140907537023255e-2,
                4.3452581288090734e-2,   4.3764970456166929e-2,   4.4078074820480386e-2,   4.4391894172576614e-2,   4.4706428316184710e-2,   4.5021677067086880e-2,   4.5337640252990795e-2,   4.5654317713404724e-2,
                4.5971709299515348e-2,   4.6289814874068223e-2,   4.6608634311250810e-2,   4.6928167496578007e-2,   4.7248414326780147e-2,   4.7569374709693381e-2,   4.7891048564152394e-2,   4.8213435819885421e-2,
                4.8536536417411479e-2,   4.8860350307939787e-2,   4.9184877453271317e-2,   4.9510117825702427e-2,   4.9836071407930529e-2,   5.0162738192961751e-2,   5.0490118184020542e-2,   5.0818211394461187e-2,
                5.1147017847681176e-2,   5.1476537577036402e-2,   5.1806770625758139e-2,   5.2137717046871763e-2,   5.2469376903117179e-2,   5.2801750266870928e-2,   5.3134837220069912e-2,   5.3468637854136741e-2,
                5.3803152269906630e-2,   5.4138380577555842e-2,   5.4474322896531635e-2,   5.4810979355483675e-2,   5.5148350092196900e-2,   5.5486435253525793e-2,   5.5825234995330048e-2,   5.6164749482411583e-2,
                5.6504978888452900e-2,   5.6845923395956734e-2,   5.7187583196186994e-2,   5.7529958489110955e-2,   5.7873049483342680e-2,   5.8216856396087653e-2,   5.8561379453088590e-2,   5.8906618888572421e-2,
                5.9252574945198406e-2,   5.9599247874007373e-2,   5.9946637934372052e-2,   6.0294745393948490e-2,   6.0643570528628527e-2,   6.0993113622493304e-2,   6.1343374967767799e-2,   6.1694354864776365e-2,
                6.2046053621899248e-2,   6.2398471555530078e-2,   6.2751608990034309e-2,   6.3105466257708593e-2,   6.3460043698741071e-2,   6.3815341661172573e-2,   6.4171360500858695e-2,   6.4528100581432757e-2,
                6.4885562274269617e-2,   6.5243745958450324e-2,   6.5602652020727609e-2,   6.5962280855492186e-2,   6.6322632864739858e-2,   6.6683708458039417e-2,   6.7045508052501312e-2,   6.7408032072747097e-2,
                6.7771280950879618e-2,   6.8135255126453955e-2,   6.8499955046449082e-2,   6.8865381165240258e-2,   6.9231533944572120e-2,   6.9598413853532475e-2,   6.9966021368526778e-2,   7.0334356973253295e-2,
                7.0703421158678926e-2,   7.1073214423015686e-2,   7.1443737271697842e-2,   7.1814990217359685e-2,   7.2186973779813926e-2,   7.2559688486030732e-2,   7.2933134870117353e-2,   7.3307313473298371e-2,
                7.3682224843896542e-2,   7.4057869537314218e-2,   7.4434248116015363e-2,   7.4811361149508136e-2,   7.5189209214328040e-2,   7.5567792894021630e-2,   7.5947112779130778e-2,   7.6327169467177477e-2,
                7.6707963562649187e-2,   7.7089495676984710e-2,   7.7471766428560595e-2,   7.7854776442678057e-2,   7.8238526351550413e-2,   7.8623016794291025e-2,   7.9008248416901740e-2,   7.9394221872261835e-2,
                7.9780937820117438e-2,   8.0168396927071451e-2,   8.0556599866573936e-2,   8.0945547318912990e-2,   8.1335239971206078e-2,   8.1725678517391834e-2,   8.2116863658222329e-2,   8.2508796101255782e-2,
                8.2901476560849729e-2,   8.3294905758154639e-2,   8.3689084421107967e-2,   8.4084013284428647e-2,   8.4479693089612021e-2,   8.4876124584925192e-2,   8.5273308525402810e-2,   8.5671245672843271e-2,
                8.6069936795805341e-2,   8.6469382669605194e-2,   8.6869584076313856e-2,   8.7270541804755063e-2,   8.7672256650503519e-2,   8.8074729415883556e-2,   8.8477960909968193e-2,   8.8881951948578591e-2,
                8.9286703354283894e-2,   8.9692215956401468e-2,   9.0098490590997516e-2,   9.0505528100888088e-2,   9.0913329335640461e-2,   9.1321895151574902e-2,   9.1731226411766811e-2,   9.2141323986049226e-2,
                9.2552188751015712e-2,   9.2963821590023610e-2,   9.3376223393197653e-2,   9.3789395057433954e-2,   9.4203337486404343e-2,   9.4618051590561078e-2,   9.5033538287141904e-2,   9.5449798500175474e-2,
                9.5866833160487126e-2,   9.6284643205705003e-2,   9.6703229580266537e-2,   9.7122593235425274e-2,   9.7542735129258052e-2,   9.7963656226672520e-2,   9.8385357499415005e-2,   9.8807839926078727e-2,
                9.9231104492112349e-2,   9.9655152189828869e-2,   1.0007998401841486e-1,   1.0050560098394004e-1,   1.0093200409936718e-1,   1.0135919438456234e-1,   1.0178717286630549e-1,   1.0221594057830137e-1,
                1.0264549856119080e-1,   1.0307584786256222e-1,   1.0350698953696360e-1,   1.0393892464591474e-1,   1.0437165425791980e-1,   1.0480517944848020e-1,   1.0523950130010790e-1,   1.0567462090233894e-1,
                1.0611053935174731e-1,   1.0654725775195923e-1,   1.0698477721366763e-1,   1.0742309885464709e-1,   1.0786222379976898e-1,   1.0830215318101705e-1,   1.0874288813750322e-1,   1.0918442981548384e-1,
                1.0962677936837610e-1,   1.1006993795677496e-1,   1.1051390674847022e-1,   1.1095868691846408e-1,   1.1140427964898891e-1,   1.1185068612952535e-1,   1.1229790755682086e-1,   1.1274594513490844e-1,
                1.1319480007512574e-1,   1.1364447359613455e-1,   1.1409496692394052e-1,   1.1454628129191327e-1,   1.1499841794080680e-1,   1.1545137811878027e-1,   1.1590516308141904e-1,   1.1635977409175610e-1,
                1.1681521242029377e-1,   1.1727147934502583e-1,   1.1772857615145984e-1,   1.1818650413263991e-1,   1.1864526458916975e-1,   1.1910485882923606e-1,   1.1956528816863222e-1,   1.2002655393078243e-1,
                1.2048865744676599e-1,   1.2095160005534213e-1,   1.2141538310297501e-1,   1.2188000794385913e-1,   1.2234547593994510e-1,   1.2281178846096569e-1,   1.2327894688446224e-1,   1.2374695259581148e-1,
                1.2421580698825256e-1,   1.2468551146291454e-1,   1.2515606742884418e-1,   1.2562747630303406e-1,   1.2609973951045111e-1,   1.2657285848406538e-1,   1.2704683466487930e-1,   1.2752166950195715e-1,
                1.2799736445245502e-1,   1.2847392098165098e-1,   1.2895134056297575e-1,   1.2942962467804364e-1,   1.2990877481668383e-1,   1.3038879247697211e-1,   1.3086967916526289e-1,   1.3135143639622163e-1,
                1.3183406569285756e-1,   1.3231756858655690e-1,   1.3280194661711632e-1,   1.3328720133277684e-1,   1.3377333429025806e-1,   1.3426034705479284e-1,   1.3474824120016228e-1,   1.3523701830873112e-1,
                1.3572667997148349e-1,   1.3621722778805909e-1,   1.3670866336678974e-1,   1.3720098832473626e-1,   1.3769420428772584e-1,   1.3818831289038972e-1,   1.3868331577620131e-1,   1.3917921459751472e-1,
                1.3967601101560359e-1,   1.4017370670070047e-1,   1.4067230333203651e-1,   1.4117180259788154e-1,   1.4167220619558465e-1,   1.4217351583161511e-1,   1.4267573322160370e-1,   1.4317886009038452e-1,
                1.4368289817203718e-1,   1.4418784920992936e-1,   1.4469371495675994e-1,   1.4520049717460240e-1,   1.4570819763494877e-1,   1.4621681811875392e-1,   1.4672636041648039e-1,   1.4723682632814357e-1,
                1.4774821766335737e-1,   1.4826053624138033e-1,   1.4877378389116221e-1,   1.4928796245139092e-1,   1.4980307377054009e-1,   1.5031911970691693e-1,   1.5083610212871066e-1,   1.5135402291404136e-1,
                1.5187288395100929e-1,   1.5239268713774473e-1,   1.5291343438245825e-1,   1.5343512760349145e-1,   1.5395776872936827e-1,   1.5448135969884666e-1,   1.5500590246097089e-1,   1.5553139897512423e-1,
                1.5605785121108221e-1,   1.5658526114906634e-1,   1.5711363077979838e-1,   1.5764296210455507e-1,   1.5817325713522345e-1,   1.5870451789435661e-1,   1.5923674641523005e-1,   1.5976994474189853e-1,
                1.6030411492925347e-1,   1.6083925904308083e-1,   1.6137537916011966e-1,   1.6191247736812106e-1,   1.6245055576590778e-1,   1.6298961646343434e-1,   1.6352966158184776e-1,   1.6407069325354876e-1,
                1.6461271362225366e-1,   1.6515572484305673e-1,   1.6569972908249323e-1,   1.6624472851860299e-1,   1.6679072534099453e-1,   1.6733772175090991e-1,   1.6788571996129003e-1,   1.6843472219684068e-1,
                1.6898473069409907e-1,   1.6953574770150111e-1,   1.7008777547944922e-1,   1.7064081630038079e-1,   1.7119487244883732e-1,   1.7174994622153416e-1,   1.7230603992743091e-1,   1.7286315588780247e-1,
                1.7342129643631077e-1,   1.7398046391907713e-1,   1.7454066069475536e-1,   1.7510188913460543e-1,   1.7566415162256796e-1,   1.7622745055533929e-1,   1.7679178834244729e-1,   1.7735716740632791e-1,
                1.7792359018240239e-1,   1.7849105911915521e-1,   1.7905957667821276e-1,   1.7962914533442278e-1,   1.8019976757593445e-1,   1.8077144590427937e-1,   1.8134418283445314e-1,   1.8191798089499780e-1,
                1.8249284262808503e-1,   1.8306877058960009e-1,   1.8364576734922658e-1,   1.8422383549053197e-1,   1.8480297761105397e-1,   1.8538319632238762e-1,   1.8596449425027333e-1,   1.8654687403468563e-1,
                1.8713033832992282e-1,   1.8771488980469740e-1,   1.8830053114222744e-1,   1.8888726504032873e-1,   1.8947509421150785e-1,   1.9006402138305607e-1,   1.9065404929714419e-1,   1.9124518071091823e-1,
                1.9183741839659604e-1,   1.9243076514156485e-1,   1.9302522374847971e-1,   1.9362079703536287e-1,   1.9421748783570411e-1,   1.9481529899856205e-1,   1.9541423338866634e-1,   1.9601429388652095e-1,
                1.9661548338850831e-1,   1.9721780480699456e-1,   1.9782126107043571e-1,   1.9842585512348490e-1,   1.9903158992710063e-1,   1.9963846845865604e-1,   2.0024649371204926e-1,   2.0085566869781478e-1,
                2.0146599644323595e-1,   2.0207747999245852e-1,   2.0269012240660528e-1,   2.0330392676389184e-1,   2.0391889615974347e-1,   2.0453503370691313e-1,   2.0515234253560063e-1,   2.0577082579357295e-1,
                2.0639048664628568e-1,   2.0701132827700574e-1,   2.0763335388693519e-1,   2.0825656669533636e-1,   2.0888096993965810e-1,   2.0950656687566336e-1,   2.1013336077755792e-1,   2.1076135493812050e-1,
                2.1139055266883407e-1,   2.1202095730001848e-1,   2.1265257218096439e-1,   2.1328540068006856e-1,   2.1391944618497043e-1,   2.1455471210269008e-1,   2.1519120185976759e-1,   2.1582891890240372e-1,
                2.1646786669660206e-1,   2.1710804872831256e-1,   2.1774946850357650e-1,   2.1839212954867293e-1,   2.1903603541026658e-1,   2.1968118965555721e-1,   2.2032759587243056e-1,   2.2097525766961070e-1,
                2.2162417867681405e-1,   2.2227436254490482e-1,   2.2292581294605220e-1,   2.2357853357388894e-1,   2.2423252814367175e-1,   2.2488780039244316e-1,   2.2554435407919519e-1,   2.2620219298503454e-1,
                2.2686132091334962e-1,   2.2752174168997919e-1,   2.2818345916338278e-1,   2.2884647720481288e-1,   2.2951079970848888e-1,   2.3017643059177282e-1,   2.3084337379534695e-1,   2.3151163328339319e-1,
                2.3218121304377440e-1,   2.3285211708821753e-1,   2.3352434945249877e-1,   2.3419791419663053e-1,   2.3487281540505047e-1,   2.3554905718681248e-1,   2.3622664367577966e-1,   2.3690557903081937e-1,
                2.3758586743600030e-1,   2.3826751310079170e-1,   2.3895052026026462e-1,   2.3963489317529543e-1,   2.4032063613277135e-1,   2.4100775344579833e-1,   2.4169624945391106e-1,   2.4238612852328524e-1,
                2.4307739504695220e-1,   2.4377005344501574e-1,   2.4446410816487140e-1,   2.4515956368142804e-1,   2.4585642449733183e-1,   2.4655469514319275e-1,   2.4725438017781343e-1,   2.4795548418842059e-1,
                2.4865801179089900e-1,   2.4936196763002793e-1,   2.5006735637972030e-1,   2.5077418274326442e-1,   2.5148245145356834e-1,   2.5219216727340703e-1,   2.5290333499567219e-1,   2.5361595944362488e-1,
                2.5433004547115096e-1,   2.5504559796301939e-1,   2.5576262183514342e-1,   2.5648112203484467e-1,   2.5720110354112024e-1,   2.5792257136491277e-1,   2.5864553054938363e-1,   2.5936998617018907e-1,
                2.6009594333575966e-1,   2.6082340718758279e-1,   2.6155238290048845e-1,   2.6228287568293822e-1,   2.6301489077731766e-1,   2.6374843346023196e-1,   2.6448350904280507e-1,   2.6522012287098221e-1,
                2.6595828032583592e-1,   2.6669798682387567e-1,   2.6743924781736105e-1,   2.6818206879461856e-1,   2.6892645528036219e-1,   2.6967241283601771e-1,   2.7041994706005071e-1,   2.7116906358829860e-1,
                2.7191976809430644e-1,   2.7267206628966682e-1,   2.7342596392436367e-1,   2.7418146678712021e-1,   2.7493858070575108e-1,   2.7569731154751862e-1,   2.7645766521949338e-1,   2.7721964766891908e-1,
                2.7798326488358183e-1,   2.7874852289218389e-1,   2.7951542776472191e-1,   2.8028398561286974e-1,   2.8105420259036597e-1,   2.8182608489340611e-1,   2.8259963876103959e-1,   2.8337487047557163e-1,
                2.8415178636297006e-1,   2.8493039279327712e-1,   2.8571069618102636e-1,   2.8649270298566468e-1,   2.8727641971197968e-1,   2.8806185291053224e-1,   2.8884900917809452e-1,   2.8963789515809351e-1,
                2.9042851754106005e-1,   2.9122088306508358e-1,   2.9201499851627253e-1,   2.9281087072922068e-1,   2.9360850658747925e-1,   2.9440791302403520e-1,   2.9520909702179542e-1,   2.9601206561407731e-1,
                2.9681682588510549e-1,   2.9762338497051500e-1,   2.9843175005786095e-1,   2.9924192838713478e-1,   3.0005392725128719e-1,   3.0086775399675787e-1,   3.0168341602401221e-1,   3.0250092078808490e-1,
                3.0332027579913078e-1,   3.0414148862298290e-1,   3.0496456688171789e-1,   3.0578951825422889e-1,   3.0661635047680602e-1,   3.0744507134372462e-1,   3.0827568870784130e-1,   3.0910821048119800e-1,
                3.0994264463563413e-1,   3.1077899920340697e-1,   3.1161728227782046e-1,   3.1245750201386246e-1,   3.1329966662885073e-1,   3.1414378440308762e-1,   3.1498986368052382e-1,   3.1583791286943110e-1,
                3.1668794044308438e-1,   3.1753995494045312e-1,   3.1839396496690236e-1,   3.1924997919490344e-1,   3.2010800636475455e-1,   3.2096805528531150e-1,   3.2183013483472852e-1,   3.2269425396120960e-1,
                3.2356042168377039e-1,   3.2442864709301078e-1,   3.2529893935189856e-1,   3.2617130769656413e-1,   3.2704576143710655e-1,   3.2792230995841117e-1,   3.2880096272097893e-1,   3.2968172926176767e-1,
                3.3056461919504553e-1,   3.3144964221325672e-1,   3.3233680808789993e-1,   3.3322612667041949e-1,   3.3411760789310956e-1,   3.3501126177003164e-1,   3.3590709839794555e-1,   3.3680512795725419e-1,
                3.3770536071296225e-1,   3.3860780701564922e-1,   3.3951247730245690e-1,   3.4041938209809170e-1,   3.4132853201584194e-1,   3.4223993775861053e-1,   3.4315361011996326e-1,   3.4406955998519292e-1,
                3.4498779833239970e-1,   3.4590833623358803e-1,   3.4683118485578021e-1,   3.4775635546214722e-1,   3.4868385941315693e-1,   3.4961370816774005e-1,   3.5054591328447424e-1,   3.5148048642278666e-1,
                3.5241743934417528e-1,   3.5335678391344944e-1,   3.5429853209998981e-1,   3.5524269597902840e-1,   3.5618928773294879e-1,   3.5713831965260701e-1,   3.5808980413867361e-1,   3.5904375370299716e-1,
                3.6000018096998968e-1,   3.6095909867803448e-1,   3.6192051968091673e-1,   3.6288445694927736e-1,   3.6385092357209059e-1,   3.6481993275816570e-1,   3.6579149783767350e-1,   3.6676563226369791e-1,
                3.6774234961381328e-1,   3.6872166359168783e-1,   3.6970358802871395e-1,   3.7068813688566566e-1,   3.7167532425438399e-1,   3.7266516435949073e-1,   3.7365767156013123e-1,   3.7465286035174672e-1,
                3.7565074536787698e-1,   3.7665134138199371e-1,   3.7765466330936555e-1,   3.7866072620895512e-1,   3.7966954528534905e-1,   3.8068113589072140e-1,   3.8169551352683146e-1,   3.8271269384705649e-1,
                3.8373269265846016e-1,   3.8475552592389758e-1,   3.8578120976415755e-1,   3.8680976046014302e-1,   3.8784119445509037e-1,   3.8887552835682858e-1,   3.8991277894007905e-1,   3.9095296314879697e-1,
                3.9199609809855519e-1,   3.9304220107897151e-1,   3.9409128955618043e-1,   3.9514338117535027e-1,   3.9619849376324668e-1,   3.9725664533084367e-1,   3.9831785407598324e-1,   3.9938213838608457e-1,
                4.0044951684090410e-1,   4.0152000821534752e-1,   4.0259363148233499e-1,   4.0367040581572071e-1,   4.0475035059326820e-1,   4.0583348539968254e-1,   4.0691983002970090e-1,   4.0800940449124285e-1,
                4.0910222900862161e-1,   4.1019832402581806e-1,   4.1129771020981863e-1,   4.1240040845401889e-1,   4.1350643988169426e-1,   4.1461582584953957e-1,   4.1572858795127900e-1,   4.1684474802134837e-1,
                4.1796432813865122e-1,   4.1908735063039084e-1,   4.2021383807597987e-1,   4.2134381331102955e-1,   4.2247729943142052e-1,   4.2361431979745733e-1,   4.2475489803810863e-1,   4.2589905805533529e-1,
                4.2704682402850873e-1,   4.2819822041892169e-1,   4.2935327197439380e-1,   4.3051200373397451e-1,   4.3167444103274576e-1,   4.3284060950672715e-1,   4.3401053509788612e-1,   4.3518424405925603e-1,
                4.3636176296016497e-1,   4.3754311869157816e-1,   4.3872833847155709e-1,   4.3991744985083848e-1,   4.4111048071853620e-1,   4.4230745930796966e-1,   4.4350841420262199e-1,   4.4471337434223153e-1,
                4.4592236902902041e-1,   4.4713542793406395e-1,   4.4835258110380473e-1,   4.4957385896671551e-1,   4.5079929234011499e-1,   4.5202891243714089e-1,   4.5326275087388476e-1,   4.5450083967669299e-1,
                4.5574321128963903e-1,   4.5698989858217149e-1,   4.5824093485694346e-1,   4.5949635385782805e-1,   4.6075618977812583e-1,   4.6202047726896971e-1,   4.6328925144793307e-1,   4.6456254790784721e-1,
                4.6584040272583446e-1,   4.6712285247256322e-1,   4.6840993422173186e-1,   4.6970168555978825e-1,   4.7099814459589230e-1,   4.7229934997212877e-1,   4.7360534087397819e-1,   4.7491615704105399e-1,
                4.7623183877811390e-1,   4.7755242696635456e-1,   4.7887796307499800e-1,   4.8020848917317941e-1,   4.8154404794214586e-1,   4.8288468268777586e-1,   4.8423043735343017e-1,   4.8558135653314467e-1,
                4.8693748548517648e-1,   4.8829887014591491e-1,   4.8966555714416932e-1,   4.9103759381584651e-1,   4.9241502821903065e-1,   4.9379790914947935e-1,   4.9518628615654989e-1,   4.9658020955957044e-1,
                4.9797973046467153e-1,   4.9938490078209352e-1,   5.0079577324398685e-1,   5.0221240142272215e-1,   5.0363483974972831e-1,   5.0506314353487711e-1,   5.0649736898643396e-1,   5.0793757323159512e-1,
                5.0938381433763257e-1,   5.1083615133366864e-1,   5.1229464423310350e-1,   5.1375935405671955e-1,   5.1523034285648786e-1,   5.1670767374010297e-1,   5.1819141089627336e-1,   5.1968161962079625e-1,
                5.2117836634344675e-1,   5.2268171865571255e-1,   5.2419174533940690e-1,   5.2570851639619414e-1,   5.2723210307806357e-1,   5.2876257791878913e-1,   5.3030001476641415e-1,   5.3184448881680235e-1,
                5.3339607664829806e-1,   5.3495485625754086e-1,   5.3652090709648195e-1,   5.3809431011065195e-1,   5.3967514777873214e-1,   5.4126350415348384e-1,   5.4285946490409335e-1,   5.4446311735999264e-1,
                5.4607455055621929e-1,   5.4769385528038204e-1,   5.4932112412130222e-1,   5.5095645151940442e-1,   5.5259993381893415e-1,   5.5425166932208387e-1,   5.5591175834511344e-1,   5.5758030327655551e-1,
                5.5925740863760123e-1,   5.6094318114476693e-1,   5.6263772977494795e-1,   5.6434116583297171e-1,   5.6605360302176824e-1,   5.6777515751528331e-1,   5.6950594803426610e-1,   5.7124609592507133e-1,
                5.7299572524162341e-1,   5.7475496283069922e-1,   5.7652393842069505e-1,   5.7830278471405334e-1,   5.8009163748353517e-1,   5.8189063567253583e-1,   5.8369992149965303e-1,   5.8551964056772992e-1,
                5.8734994197760923e-1,   5.8919097844684960e-1,   5.9104290643367120e-1,   5.9290588626641473e-1,   5.9478008227881655e-1,   5.9666566295142235e-1,   5.9856280105948311e-1,   6.0047167382770021e-1,
                6.0239246309221112e-1,   6.0432535547023408e-1,   6.0627054253781873e-1,   6.0822822101618103e-1,   6.1019859296713452e-1,   6.1218186599816620e-1,   6.1417825347774513e-1,   6.1618797476149442e-1,
                6.1821125542990381e-1,   6.2024832753831056e-1,   6.2229942987993105e-1,   6.2436480826278526e-1,   6.2644471580142119e-1,   6.2853941322441715e-1,   6.3064916919871693e-1,   6.3277426067193757e-1,
                6.3491497323388124e-1,   6.3707160149858427e-1,   6.3924444950834649e-1,   6.4143383116130589e-1,   6.4364007066425655e-1,   6.4586350301255462e-1,   6.4810447449911848e-1,   6.5036334325470691e-1,
                6.5264047982185575e-1,   6.5493626776507012e-1,   6.5725110432010975e-1,   6.5958540108547071e-1,   6.6193958475946239e-1,   6.6431409792660643e-1,   6.6670939989744977e-1,   6.6912596760629112e-1,
                6.7156429657177447e-1,   6.7402490192581209e-1,   6.7650831951686861e-1,   6.7901510709427707e-1,   6.8154584558097641e-1,   6.8410114044286906e-1,   6.8668162316391032e-1,   6.8928795283707439e-1,
                6.9192081788251098e-1,   6.9458093790553557e-1,   6.9726906570860717e-1,   6.9998598947317140e-1,   7.0273253512921721e-1,   7.0550956893265288e-1,   7.0831800027320116e-1,   7.1115878473850017e-1,
                7.1403292746354684e-1,   7.1694148679861508e-1,   7.1988557833342142e-1,   7.2286637932071765e-1,   7.2588513354880904e-1,   7.2894315671990640e-1,   7.3204184239993903e-1,   7.3518266861575147e-1,
                7.3836720518781110e-1,   7.4159712190107678e-1,   7.4487419763403264e-1,   7.4820033058671730e-1,   7.5157754977368609e-1,   7.5500802797825586e-1,   7.5849409640140545e-1,   7.6203826128401553e-1,
                7.6564322283689414e-1,   7.6931189688206536e-1,   7.7304743969478977e-1,   7.7685327664361434e-1,   7.8073313536191317e-1,   7.8469108435761629e-1,   7.8873157818998523e-1,   7.9285951062963565e-1,
                7.9708027759305471e-1,   8.0139985213719996e-1,   8.0582487445824048e-1,   8.1036276072564085e-1,   8.1502183579281451e-1,   8.1981149649823861e-1,   8.2474241461710611e-1,   8.2982679186750081e-1,
                8.3507868422550068e-1,   8.4051441997723693e-1,   8.4615314677693345e-1,   8.5201755976321174e-1,   8.5813488948370389e-1,   8.6453827217539898e-1,   8.7126869937479101e-1,   8.7837787556918748e-1,
                8.8593255717277708e-1,   8.9402142663239159e-1,   9.0276656651186919e-1,   9.1234391374237797e-1,   9.2302298018297055e-1,   9.3525350397744639e-1,   9.4988919638841768e-1,   9.6894541501099236e-1
            };
            // (<diameter> + 1)-scaled probability of simple coverage of the boxes: { (x_1 - m) / (x_0* - m), (x_2 - m) / (x_1 - m), ..., (x_n - m) / (x_{n - 1} - m) }.
            const uniform_type m_coverage_scaled[n_boxes] = {
                3876197952,    3948927542,    4066780664,    4121699967,    4153884074,    4175180159,    4190384468,    4201821722,
                4210760053,    4217951987,    4223873255,    4228839832,    4233070081,    4236719908,    4239903707,    4242707381,
                4245196734,    4247423059,    4249426948,    4251240960,    4252891526,    4254400335,    4255785357,    4257061612,
                4258241758,    4259336538,    4260355130,    4261305429,    4262194259,    4263027555,    4263810501,    4264547646,
                4265243002,    4265900117,    4266522146,    4267111899,    4267671891,    4268204378,    4268711391,    4269194763,
                4269656153,    4270097066,    4270518869,    4270922812,    4271310033,    4271681575,    4272038396,    4272381376,
                4272711324,    4273028987,    4273335055,    4273630167,    4273914914,    4274189846,    4274455472,    4274712269,
                4274960680,    4275201116,    4275433965,    4275659588,    4275878322,    4276090486,    4276296376,    4276496273,
                4276690439,    4276879121,    4277062554,    4277240956,    4277414537,    4277583491,    4277748005,    4277908253,
                4278064403,    4278216612,    4278365029,    4278509797,    4278651049,    4278788914,    4278923514,    4279054965,
                4279183377,    4279308855,    4279431500,    4279551407,    4279668668,    4279783371,    4279895598,    4280005429,
                4280112940,    4280218205,    4280321294,    4280422273,    4280521206,    4280618156,    4280713182,    4280806340,
                4280897684,    4280987267,    4281075139,    4281161349,    4281245943,    4281328966,    4281410460,    4281490468,
                4281569030,    4281646183,    4281721965,    4281796412,    4281869558,    4281941437,    4282012081,    4282081521,
                4282149787,    4282216907,    4282282911,    4282347825,    4282411675,    4282474486,    4282536284,    4282597091,
                4282656931,    4282715827,    4282773799,    4282830869,    4282887057,    4282942382,    4282996864,    4283050521,
                4283103370,    4283155430,    4283206718,    4283257249,    4283307039,    4283356105,    4283404460,    4283452120,
                4283499099,    4283545410,    4283591068,    4283636084,    4283680472,    4283724245,    4283767413,    4283809989,
                4283851984,    4283893409,    4283934275,    4283974593,    4284014373,    4284053624,    4284092356,    4284130580,
                4284168303,    4284205536,    4284242287,    4284278564,    4284314376,    4284349731,    4284384637,    4284419102,
                4284453133,    4284486737,    4284519923,    4284552696,    4284585065,    4284617035,    4284648613,    4284679806,
                4284710619,    4284741060,    4284771133,    4284800846,    4284830203,    4284859210,    4284887872,    4284916196,
                4284944186,    4284971848,    4284999186,    4285026205,    4285052911,    4285079307,    4285105399,    4285131191,
                4285156687,    4285181891,    4285206809,    4285231444,    4285255800,    4285279882,    4285303692,    4285327235,
                4285350515,    4285373535,    4285396299,    4285418810,    4285441072,    4285463089,    4285484863,    4285506398,
                4285527697,    4285548763,    4285569599,    4285590209,    4285610595,    4285630760,    4285650707,    4285670439,
                4285689958,    4285709268,    4285728370,    4285747268,    4285765964,    4285784461,    4285802761,    4285820865,
                4285838778,    4285856501,    4285874036,    4285891386,    4285908553,    4285925538,    4285942345,    4285958975,
                4285975430,    4285991713,    4286007825,    4286023768,    4286039544,    4286055156,    4286070604,    4286085891,
                4286101018,    4286115988,    4286130802,    4286145461,    4286159968,    4286174324,    4286188531,    4286202589,
                4286216502,    4286230270,    4286243895,    4286257378,    4286270721,    4286283926,    4286296993,    4286309924,
                4286322721,    4286335384,    4286347916,    4286360317,    4286372589,    4286384733,    4286396750,    4286408642,
                4286420410,    4286432054,    4286443577,    4286454979,    4286466261,    4286477425,    4286488471,    4286499402,
                4286510217,    4286520918,    4286531505,    4286541981,    4286552346,    4286562600,    4286572746,    4286582783,
                4286592713,    4286602537,    4286612256,    4286621870,    4286631381,    4286640789,    4286650095,    4286659301,
                4286668406,    4286677412,    4286686320,    4286695130,    4286703843,    4286712460,    4286720982,    4286729409,
                4286737743,    4286745984,    4286754132,    4286762189,    4286770155,    4286778031,    4286785817,    4286793515,
                4286801124,    4286808646,    4286816082,    4286823431,    4286830694,    4286837873,    4286844967,    4286851978,
                4286858905,    4286865750,    4286872514,    4286879195,    4286885796,    4286892317,    4286898758,    4286905120,
                4286911404,    4286917609,    4286923736,    4286929787,    4286935761,    4286941659,    4286947482,    4286953229,
                4286958902,    4286964501,    4286970026,    4286975477,    4286980856,    4286986163,    4286991398,    4286996561,
                4287001654,    4287006675,    4287011627,    4287016509,    4287021321,    4287026064,    4287030739,    4287035346,
                4287039885,    4287044356,    4287048760,    4287053098,    4287057369,    4287061574,    4287065713,    4287069788,
                4287073797,    4287077741,    4287081622,    4287085438,    4287089190,    4287092880,    4287096506,    4287100069,
                4287103570,    4287107009,    4287110386,    4287113701,    4287116955,    4287120149,    4287123281,    4287126353,
                4287129365,    4287132317,    4287135209,    4287138042,    4287140815,    4287143530,    4287146186,    4287148784,
                4287151323,    4287153805,    4287156228,    4287158595,    4287160904,    4287163156,    4287165351,    4287167489,
                4287169571,    4287171597,    4287173567,    4287175481,    4287177339,    4287179142,    4287180890,    4287182583,
                4287184220,    4287185803,    4287187332,    4287188806,    4287190226,    4287191592,    4287192904,    4287194163,
                4287195367,    4287196519,    4287197617,    4287198662,    4287199654,    4287200594,    4287201480,    4287202315,
                4287203096,    4287203826,    4287204503,    4287205129,    4287205702,    4287206224,    4287206694,    4287207113,
                4287207480,    4287207796,    4287208060,    4287208274,    4287208437,    4287208548,    4287208609,    4287208619,
                4287208579,    4287208488,    4287208346,    4287208155,    4287207913,    4287207621,    4287207278,    4287206886,
                4287206444,    4287205951,    4287205409,    4287204818,    4287204176,    4287203485,    4287202744,    4287201954,
                4287201114,    4287200225,    4287199287,    4287198299,    4287197262,    4287196176,    4287195040,    4287193856,
                4287192622,    4287191339,    4287190008,    4287188627,    4287187197,    4287185718,    4287184190,    4287182614,
                4287180988,    4287179314,    4287177590,    4287175818,    4287173997,    4287172127,    4287170208,    4287168241,
                4287166225,    4287164159,    4287162045,    4287159882,    4287157671,    4287155410,    4287153101,    4287150742,
                4287148335,    4287145879,    4287143374,    4287140820,    4287138217,    4287135565,    4287132864,    4287130114,
                4287127315,    4287124467,    4287121570,    4287118623,    4287115627,    4287112582,    4287109488,    4287106344,
                4287103151,    4287099908,    4287096616,    4287093274,    4287089883,    4287086442,    4287082951,    4287079410,
                4287075820,    4287072179,    4287068489,    4287064748,    4287060957,    4287057116,    4287053225,    4287049283,
                4287045291,    4287041249,    4287037155,    4287033011,    4287028816,    4287024570,    4287020274,    4287015926,
                4287011526,    4287007076,    4287002574,    4286998021,    4286993416,    4286988759,    4286984050,    4286979290,
                4286974477,    4286969612,    4286964695,    4286959725,    4286954703,    4286949628,    4286944500,    4286939320,
                4286934086,    4286928799,    4286923458,    4286918064,    4286912616,    4286907115,    4286901559,    4286895950,
                4286890286,    4286884568,    4286878795,    4286872967,    4286867085,    4286861147,    4286855154,    4286849106,
                4286843002,    4286836842,    4286830626,    4286824354,    4286818026,    4286811642,    4286805200,    4286798702,
                4286792147,    4286785534,    4286778864,    4286772136,    4286765350,    4286758506,    4286751604,    4286744643,
                4286737624,    4286730545,    4286723408,    4286716210,    4286708954,    4286701637,    4286694260,    4286686823,
                4286679325,    4286671767,    4286664147,    4286656466,    4286648723,    4286640918,    4286633052,    4286625123,
                4286617131,    4286609076,    4286600958,    4286592777,    4286584532,    4286576223,    4286567850,    4286559412,
                4286550909,    4286542341,    4286533707,    4286525007,    4286516242,    4286507410,    4286498511,    4286489546,
                4286480512,    4286471412,    4286462243,    4286453005,    4286443700,    4286434325,    4286424880,    4286415366,
                4286405782,    4286396127,    4286386402,    4286376605,    4286366737,    4286356797,    4286346784,    4286336699,
                4286326541,    4286316309,    4286306004,    4286295624,    4286285170,    4286274640,    4286264035,    4286253354,
                4286242597,    4286231763,    4286220852,    4286209863,    4286198797,    4286187651,    4286176427,    4286165123,
                4286153739,    4286142275,    4286130731,    4286119104,    4286107397,    4286095606,    4286083733,    4286071777,
                4286059737,    4286047612,    4286035403,    4286023109,    4286010728,    4285998261,    4285985708,    4285973066,
                4285960337,    4285947519,    4285934612,    4285921615,    4285908527,    4285895349,    4285882080,    4285868718,
                4285855263,    4285841715,    4285828073,    4285814337,    4285800505,    4285786578,    4285772554,    4285758432,
                4285744213,    4285729896,    4285715479,    4285700962,    4285686345,    4285671626,    4285656806,    4285641883,
                4285626856,    4285611725,    4285596489,    4285581148,    4285565700,    4285550145,    4285534481,    4285518709,
                4285502828,    4285486836,    4285470733,    4285454518,    4285438190,    4285421748,    4285405191,    4285388519,
                4285371731,    4285354826,    4285337802,    4285320659,    4285303397,    4285286013,    4285268508,    4285250880,
                4285233128,    4285215251,    4285197249,    4285179120,    4285160863,    4285142477,    4285123961,    4285105315,
                4285086537,    4285067625,    4285048580,    4285029399,    4285010082,    4284990627,    4284971034,    4284951301,
                4284931427,    4284911411,    4284891252,    4284870948,    4284850498,    4284829901,    4284809155,    4284788260,
                4284767214,    4284746016,    4284724664,    4284703158,    4284681495,    4284659674,    4284637694,    4284615553,
                4284593251,    4284570785,    4284548154,    4284525357,    4284502392,    4284479257,    4284455951,    4284432473,
                4284408820,    4284384991,    4284360985,    4284336800,    4284312434,    4284287885,    4284263152,    4284238232,
                4284213125,    4284187828,    4284162340,    4284136658,    4284110781,    4284084707,    4284058433,    4284031958,
                4284005281,    4283978398,    4283951308,    4283924008,    4283896498,    4283868773,    4283840833,    4283812675,
                4283784297,    4283755697,    4283726871,    4283697819,    4283668538,    4283639024,    4283609276,    4283579292,
                4283549068,    4283518602,    4283487892,    4283456935,    4283425729,    4283394270,    4283362556,    4283330583,
                4283298351,    4283265854,    4283233091,    4283200059,    4283166754,    4283133173,    4283099314,    4283065172,
                4283030746,    4282996032,    4282961026,    4282925725,    4282890125,    4282854224,    4282818018,    4282781502,
                4282744674,    4282707530,    4282670066,    4282632278,    4282594162,    4282555714,    4282516931,    4282477809,
                4282438342,    4282398527,    4282358360,    4282317836,    4282276951,    4282235701,    4282194080,    4282152084,
                4282109708,    4282066948,    4282023799,    4281980255,    4281936312,    4281891964,    4281847206,    4281802033,
                4281756439,    4281710419,    4281663967,    4281617078,    4281569745,    4281521962,    4281473723,    4281425023,
                4281375855,    4281326212,    4281276089,    4281225477,    4281174371,    4281122763,    4281070647,    4281018016,
                4280964861,    4280911176,    4280856953,    4280802184,    4280746861,    4280690976,    4280634521,    4280577488,
                4280519867,    4280461651,    4280402830,    4280343396,    4280283338,    4280222648,    4280161315,    4280099331,
                4280036684,    4279973365,    4279909363,    4279844667,    4279779267,    4279713151,    4279646307,    4279578725,
                4279510392,    4279441295,    4279371424,    4279300764,    4279229302,    4279157026,    4279083922,    4279009976,
                4278935174,    4278859500,    4278782941,    4278705481,    4278627104,    4278547794,    4278467536,    4278386312,
                4278304105,    4278220897,    4278136672,    4278051409,    4277965091,    4277877698,    4277789211,    4277699609,
                4277608870,    4277516975,    4277423901,    4277329625,    4277234126,    4277137378,    4277039358,    4276940041,
                4276839402,    4276737414,    4276634051,    4276529285,    4276423087,    4276315429,    4276206280,    4276095610,
                4275983388,    4275869580,    4275754154,    4275637074,    4275518307,    4275397814,    4275275560,    4275151505,
                4275025610,    4274897833,    4274768134,    4274636468,    4274502791,    4274367057,    4274229219,    4274089227,
                4273947031,    4273802580,    4273655819,    4273506693,    4273355144,    4273201115,    4273044543,    4272885366,
                4272723519,    4272558933,    4272391541,    4272221268,    4272048042,    4271871784,    4271692415,    4271509852,
                4271324010,    4271134799,    4270942128,    4270745901,    4270546019,    4270342380,    4270134876,    4269923398,
                4269707830,    4269488052,    4269263941,    4269035367,    4268802196,    4268564288,    4268321498,    4268073674,
                4267820657,    4267562284,    4267298383,    4267028774,    4266753270,    4266471676,    4266183788,    4265889393,
                4265588268,    4265280178,    4264964881,    4264642119,    4264311624,    4263973116,    4263626299,    4263270863,
                4262906482,    4262532815,    4262149501,    4261756162,    4261352399,    4260937791,    4260511895,    4260074243,
                4259624340,    4259161665,    4258685665,    4258195755,    4257691314,    4257171686,    4256636173,    4256084034,
                4255514482,    4254926676,    4254319725,    4253692674,    4253044507,    4252374137,    4251680399,    4250962049,
                4250217749,    4249446065,    4248645453,    4247814252,    4246950670,    4246052774,    4245118472,    4244145498,
                4243131395,    4242073493,    4240968886,    4239814402,    4238606579,    4237341623,    4236015374,    4234623256,
                4233160226,    4231620713,    4229998547,    4228286872,    4226478057,    4224563575,    4222533871,    4220378202,
                4218084448,    4215638880,    4213025889,    4210227652,    4207223720,    4203990526,    4200500757,    4196722590,
                4192618715,    4188145103,    4183249428,    4177869012,    4171928146,    4165334517,    4157974406,    4149706120,
                4140350847,    4129679688,    4117394866,    4103101806,    4086266507,    4066148301,    4041689757,    4011328230,
                3972655700,    3921763394,    3851871637,    3750145282,    3589150293,    3298651296,    2635547562,    0
            };

            probability::dist_exponential m_distribution = probability::dist_exponential::standard;

            result_type pdf(result_type x) const
            {
                return this->m_distribution.pdf(x);
            }

        public:
            result_type sample_from_box_horizontal(uniform_type box_index, uniform_type uniform_random, bool& is_interior) const
            {
                result_type z = uniform_random * this->m_width_scaled[box_index];
                is_interior = (uniform_random < this->m_coverage_scaled[box_index]);
                return z;
            }

            bool is_inside_box_vertical(uniform_type box_index, result_type horizontal, uniform_type uniform_random) const
            {
                result_type f = this->pdf(horizontal);
                return (this->m_bottom[box_index] + uniform_random * this->m_height_scaled[box_index] < f);
            }

            bool is_tail_box(uniform_type box_index) const
            {
                switch (box_index)
                {
                case 0: return true;
                default: return false;
                }
            }

            template <typename t_engine_type>
            result_type sample_tail(uniform_type box_index, t_engine_type& uniform_generator)
            {
                const auto r = right_tail_x;
                double u = (uniform_generator() - t_engine_type::min()) / double_constants::two_pow_32;
                return r - std::log(1.0 - u);
            }
        };
    }
}

#endif // AFTERMATH_RANDOM_ZIGGURAT_EXPONENTIAL_1024_UINT32_HPP_INCLUDED
